本书从Python主流框架Scrapy的简介及网络爬虫知识讲起,逐步深入到Scrapy进阶实战。本书从实战出发,根据不同需求,有针对性地讲解了静态网页、动态网页、App应用是如何爬取所需数据,以及Scrapy是如何部署分布式爬取,最后还介绍了用Scrapy + Pandas是如何进行数据分析及数据展示,让读者不但可以系统地学习Scrapy编程的相关知识,而且还能对Scrapy应用开发有更为深入的理解。
本书分为12章,涵盖的主要内容有Scrapy框架简介;Scrapy网络爬虫知识介绍;Scrapy开发环境的搭建;Scrapy架构及编程;Scrapy进阶;实战项目:Scrapy静态网页的爬取;实战项目:Scrapy动态网页的爬取;实战项目:Scrapy爬取App应用数据;Scrapy的分布式部署与爬取;分布式的实战项目;用Selenium框架测试网站;用Scrapy + Pandas进行数据分析。
本书内容通俗易懂,实例典型,实用性强,特别适合学习Python主流框架Scrapy的入门读者和进阶读者阅读,也适合数据分析与挖掘技术的初学者阅读,还适合相关培训机构的师生阅读。
张颖,“清颖设计”微信公众号创始人,现任上海懂得网络科技有限公司技术部主管,从事编程开发十余年,熟悉Python的方方面面,尤其擅长Python爬虫和数据分析。
第1章 Scrapy框架简介
1.1 Scrapy简介 ·······2
1.2 关于本书:目标和用途 ········2
1.3 进行自动化数据爬取的重要性 ·······3
1.4 掌握自动化测试的重要性 ········3
1.5 合理规划,开发高质量的应用 ·······4
1.6 网络数据的采集法律与道德约束 ·······5
1.7 本章小结 ·······5
第2章 Scrapy网络爬虫知识介绍
2.1 爬虫的作用 ········7
2.2 爬虫必备的前端知识 ·······9
2.3 爬虫经常用的Python语法 ·······26
2.4 本章小结 ·······44
第3章 Scrapy开发环境的搭建
3.1 安装Python ·······47
3.2 数据库的安装 ········50
3.3 安装Scrapy ········56
3.4 本章小结 ·······60
第4章 Scrapy架构及编程
4.1 Scrapy架构及目录源码分析 ·······62
4.2 Scrapy项目的创建和管理 ·······67
4.3 PyCharm如何调试Scrapy ·······72
4.4 Scrapy的组件 ·······77
4.5 Scrapy的数据流 ·······78
4.6 数据存储 ·······78
4.7 Scrapy如何定义中间件 ·······80
4.8 Scrapy其他方法的使用 ·······82
4.9 本章小结 ·······83
第5章 Scrapy进阶
5.1 理解Scrapy性能 ·······85
5.2 编写Spider的逻辑 ·······93
5.3 Item和Pipeline ·······95
5.4 数据库存储 ·······98
5.5 Scrapy集成随机User-Agent和代理IP ·······100
5.6 突破反爬技术 ·······102
5.7 图片和文件下载 ·······103
5.8 如何部署爬虫 ·······108
5.9 计划定时爬取 ·······111
5.10 本章小结 ·······112
第6章 实战项目:Scrapy静态网页的爬取
6.1 采集需求及网页分析 ·······114
6.2 数据表的设计 ·······115
6.3 获取和解析列表、详情页 ·······115
6.4 数据存储 ·······117
6.5 数据的导出和展示 ·······119
6.6 本章小结 ·······121
第7章 实战项目:Scrapy动态网页的爬取
7.1 采集需求及网页分析 ·······123
7.2 Selenium的安装和使用 ···············124
7.3 解析网页及代码的实现 ················126
7.4 数据的存储 ·······128
7.5 数据的导出 ·······130
7.6 本章小结 ·······133
第8章 实战项目:Scrapy爬取App应用数据
8.1 搭建开发环境 ·······135
8.2 移动自动化工具:Ui Automator Viewer ·······144
8.3 Appium Desktop工具的录制功能 ·······147
8.4 App应用数据抓取实战项目 ·······150
8.5 本章小结 ·······158
第9章 Scrapy的分布式部署与爬取
9.1 分布式系统概述及要点 ·······160
9.2 使用Gerapy管理分布式爬虫 ·······162
9.3 通过Scrapyd + ScrapydWeb简单高效地部署和监控分布式爬虫项目 ·······168
9.4 使用Scrapy-Redis实现分布式爬虫 ·······174
9.5 本章小结 ·······195
第10章 分布式的实战项目
10.1 搭建Redis服务器 ·······197
10.2 创建主项目及配置Scrapy-Redis ·······197
10.3 创建从项目及配置Scrapy-Redis ·······200
10.4 部署代理IP池及User-Agent ·······203
10.5 执行程序 ·······205
10.6 本章小结 ·······206
第11章 用Selenium框架测试网站
11.1 网站测试简介 ·······208
11.2 用Scrapy + Selenium进行前端自动化测试 ·······208
11.3 本章小结 ·······235
第12章 用Scrapy + Pandas进行数据分析
12.1 Python数据分析概述 ·······237
12.2 NumPy简介及操作 ·······238
12.3 Matplotlib简介及操作 ·······247
12.4 Pandas简介及操作 ·······256
12.5 实战项目:Scrapy爬取网站并用Pandas进行数据分析 ·······267
12.6 本章小结 ·······284