代码兼顾Python 2和Python 3/分享实战项目源代码/深入分析爬虫测试与调试过程/详解可视化爬虫
爬虫初步
提供学习虫术的技术线路图,介绍爬虫基本的实现方法与实际运用。
Scrapy基础
以Scrapy架构为核心,详解Scrapy架构和各个模块的作用。
Scrapy工程管理与部署
详解Scrapyd的安装配置,介绍scrapyd-client和scrapyd-deploy的使用方法。
中阶虫术
分析Scrapy的蜘蛛内部实现,运用Selenium和Splash处理棘手的JavaScript网页,详解如何处理采集后的数据。
高阶虫术
聚焦于爬虫系统的性能,讲解如何能让爬虫变得更加隐蔽,如何让爬虫能看懂图片并训练它们使之变得更加聪明。讲解虫术的“大招”(分布式爬虫)来应对大规模的数据采集工作与数据存储的工作。
目录
- 第1章 爬虫初步
- 1.1 爬虫与大数据
- 1.1.1 大数据架构
- 1.1.2 爬虫的作用与地位
- 1.1.3 Python与爬虫
- 1.1.4 Python的网络爬虫框架
- 1.1.5 虫术技术路线图
- 1.2 实例:简单的爬虫
- 1.3 内容分析进阶
- 1.3.1 选择器
- 1.3.2 深入BeautifulSoup
- 1.3.3 元素的搜寻
- 1.3.4 乱码与中文编码
- 1.4 新闻供稿的爬取实例
- 1.5 小结
- 第2章 Scrapy基础知识
- 2.1 Scrapy架构
- 2.2 Scrapy快速入手
- 2.3 数据模型Item
- 2.4 蜘蛛—Spiders
- 2.5 管道—Item Pipeline
- 2.6 Scrapy的运行与配置
- 2.7 新闻供稿爬虫的Scrapy实现
- 2.8 小结
- 第3章 Scrapy的工程管理
- 3.1 Scrapyd
- 3.2 scrapyd-client及部署
- 3.3 搭建爬虫服务器
- 第4章 中阶虫术
- 4.1 蜘蛛的演化
- 4.1.1 蜘蛛的本质—深入Spider
- 4.1.2 通用蜘蛛
- 4.1.3 蜘蛛中间件
- 4.2 爬虫系统的测试与调试
- 4.2.1 开发期调试
- 4.2.2 蜘蛛的测试
- 4.2.3 蜘蛛的运行期调试
- 4.2.4 调试内存溢出
- 4.3 处理HTTP请求
- 4.3.1 HTTP请求
- 4.3.2 Scrapy的Request对象
- 4.3.3 表单处理
- 4.3.4 下载器中间件
- 4.4 处理HTTP响应
- 4.4.1 HTTP响应
- 4.4.2 Scrapy的响应对象
- 4.4.3 深入选择器
- 4.4.4 非结构化数据的提取
- 4.4.5 黑夜中的眼睛
- 4.5 处理JavaScript
- 4.5.1 示例:电商产品爬虫
- 4.5.2 Selenium和PhantomJS
- 4.5.3 Scrapy与Splash
- 4.6 数据存储与后处理
- 4.6.1 图片的下载与存储
- 4.6.2 示例:产品图片采集
- 4.6.3 导出到数据文件
- 4.6.4 导出到数据库
- 4.6.5 示例:基于阿里云的存储后端
- 第5章 高阶虫术
- 5.1 增量式爬网
- 5.1.1 推演路由
- 5.1.2 时机的重要性
- 5.1.3 去重处理
- 5.1.4 布隆过滤器
- 5.1.5 基于Redis的布隆过滤器
- 5.2 突破封印
- 5.2.1 封禁浅析
- 5.2.2 客户端仿真
- 5.2.3 化身万千—蜘蛛世界的易容术
- 5.2.4 反跟踪
- 5.2.5 绕开蜜罐
- 5.3 虫海
- 5.3.1 分布式爬虫架构
- 5.3.2 认识scrapy-redis
- 5.3.3 示例:分布式电商爬虫
- 5.4 可视化爬虫
- 5.4.1 示例:某点评网爬虫
- 5.4.2 解读Portia爬虫代码
- 5.4.3 数据项加载器—Item Loaders
- 5.4.4 最后的工作