本书基于Python这门灵活且简洁的语言,结合作者在网络数据爬取和大数据方面的实际工程经验,使得本书更具实用性。本书旨在让更多数据工作者或编程爱好者在大数据时代从海量的信息中通过掌握“虫术”来获取对自已或企业有价值的信息。
爬虫初步
提供学习虫术的技术线路图,介绍爬虫基本的实现方法与实际运用。
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 最后的工作