随笔分类 - ⑤ Py - 开发_6 爬虫
摘要:elasticsearch - 介绍 需求 ▧ 搜索方案要高效 ▧ 希望零配置和完全免费的搜索方案 ▧ 希望能够简单通过json 和 http 与搜索引擎交互 ▧ 希望搜索服务器稳定 ▧ 希望能够将一台服务器扩展到上百台 说明 ElasticSearch 是一个基于 Lucene 的搜索服务器。 它
阅读全文
摘要:机器视觉 - tesseract ( 验证码 ) 安装 Ubuntu Windows 下载安装包 添加环境变量(Path) :搜索 环境变量 测试 终端 :tesseract xx.jpg 文件名 pytesseract 识别成功率取决你的 tessdata 的质量 自带的质量就很炸, 所以基本上没
阅读全文
摘要:实例解析 - 小说爬虫 页面分析 共有三级页面 一级页面 大目录 二级页面 章节目录 三级界面 章节内容 爬取准备 一级界面 二级页面xpath 直接复制的 xpath 这里存在着反爬虫机制, 改变了页面结构 在返回的数据改变了页面结构, 需要换为下面的 xpath 才可以 三级页面xpath 项目
阅读全文
摘要:selenium 模块 Web自动化测试工具, 可运行在浏览器,根据指定命令操作浏览器, 必须与第三方浏览器结合使用 安装 phantomjs 浏览器 无界面浏览器(无头浏览器), 在内存中进行页面加载,高效 安装 windows 下载对应安装包,将文件放到python安装目录的Scripts目录下
阅读全文
摘要:Xpath 在 XML 文档中查找信息的语言, 同样适用于 HTML 辅助工具 Xpath Helper Chrome插件 快捷键 Ctrl + shift + x XML Quire xpath 编辑工具 Xpath 表达式 // 查找所有节点 查找所有的book节点 / 查找当前节点 查找所有b
阅读全文
摘要:高性能相关 如何实现多个任务的同时进行 而且还效率高 串行实现 效率最低最不可取 多线程 多线程存在线程利用率不高的问题 协程+IO切换 gevent内部调用greenlet(实现了协程) 基于协程比线程更加省资源 事件循环 基于事件循环的异步非阻塞模块:Twisted
阅读全文
摘要:分布式爬虫 概念 所谓分布式, 多个程序同时对一个任务进行操作 一分多的高效率的任务进行方式 简单说明 一个 10GB 的爬虫任务, 交给10台服务器进行同时爬取 对比单服务器无论怎么优化都是 10倍的效率, 但是成本高 需要硬件环境支持 ( 带宽, 服务器设备等 ) 多态主机共享一个爬取队列即为分
阅读全文
摘要:配置文件 基本配置 并发与延迟 智能限速/自动节流 介绍 设置目标 1、比使用默认的下载延迟对站点更好 2、自动调整scrapy到最佳的爬取速度,所以用户无需自己调整下载延迟到最佳状态。用户只需要定义允许最大并发的请求,剩下的事情由该扩展组件自动完成 如何实现 在Scrapy中,下载延迟是通过计算建
阅读全文
摘要:中间件 下载器中间件 写中间件 配置文件 执行顺序梳理 应用场景 - 随机 User-Agent 开源的组件 导入 配置文件中设置选择方式 根据配置文件中的选择方式设置模式 应用场景 - IP代理 写个脚本完成对 西刺代理IP的爬虫 并存入数据库 设置中间件来调用脚本设置代理 IP 爬虫中间件 写中
阅读全文
摘要:持久化相关 相关文件 items.py 数据结构模板文件。定义数据属性。 pipelines.py 管道文件。接收数据(items),进行持久化操作。 持久化流程 ▨ 爬虫文件爬取到数据后,将数据封装到 items 对象 ▨ items.py 用 yield 关键字将 items对象 提交给 pip
阅读全文
摘要:BeatifulSoup 模块 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库 安装 解析器下载 解析器 下表列出了主要的解析器,以及它们的优缺点, 官网推荐使用 lxml 作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3
阅读全文
摘要:简单爬虫示例 爬取抽屉,以及自动登陆抽屉点赞 先查看首页拿到cookie,然后登陆要携带首页拿到的 cookie 才可以通过验证 爬取拉勾网 请求头中存在自定义的验证字段,要想办法拿到才可以正确爬取,以及 Referer 的使用 自动登陆GitHub scrf_token 的验证 总结 请求头: 特
阅读全文
摘要:Spiders - 爬虫文件 概念 介绍 由一系列定义了一个网址或一组网址类如何被爬取的类组成 具体包括如何执行爬取任务并且如何从页面中提取结构化的数据。 简单来说就是帮助你爬取数据的地方 内部行为流程 初始请求以及默认回调 生成初始的 Requests 来爬取第一个URLS,并且标识一个回调函数,
阅读全文
摘要:Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 A
阅读全文
摘要:requests 模块 介绍 使用requests可以模拟浏览器的请求, 比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) ps: requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的reques
阅读全文