32
3.3 在互联网上抓取 36
第4章 网络爬虫模型 41
4.1 规划和定义对象 41
4.2 处理不同的网站布局 45
4.3 结构化爬虫 49
4.3.1 通过搜索抓取网站 49
4.3.2 通过链接抓取网站 52
4.3.3 抓取多种类型的页面 54
4.4 关于网络爬虫模型的思考 55
第5章 Scrapy 57
5.1 安装Scrapy 57
5.2 创建一个简易爬虫 59
5.3 带规则的抓取 60
5.4 创建item 64
5.5 输出item 66
5.6 item管线组件 66
5.7 Scrapy日志管理 69
5.8 更多资源 70
第6章 存储数据 71
6.1 媒体文件 71
6.2 把数据存储到CSV 74
6.3 MySQL 75
6.3.1 安装MySQL 76
6.3.2 基本命令 78
6.3.3 与Python整合 81
6.3.4 数据库技术与最佳实践 84
6.3.5 MySQL里的“六度空间游戏” 86
6.4 Email 88
第二部分 高级网页抓取
第7章 读取文档 93
7.1 文档编码 93
7.2 纯文本 94
7.3 CSV 98
7.4 PDF 100
7.5 微软Word和.docx 102
第8章 数据清洗 106
8.1 编写代码清洗数据 106
8.2 数据存储后再清洗 111
第9章 自然语言处理 115
9.1 概括数据 116
9.2 马尔可夫模型 119
9.3 自然语言工具包 124
9.3.1 安装与设置 125
9.3.2 用NLTK做统计分析 126
9.3.3 用NLTK做词性分析 128
9.4 其他资源 131
第10章 穿越网页表单与登录窗口进行抓取 132
10.1 PythonRequests库 132
10.2 提交一个基本表单 133
10.3 单选按钮、复选框和其他输入 134
10.4 提交文件和图像 136
10.5 处理登录和cookie 136
10.6 其他表单问题 139
第11章 抓取JavaScript 140
11.1 JavaScript简介 140
11.2 Ajax和动态HTML 143
11.2.1 在Python中用Selenium执行JavaScript 144
11.2.2 Selenium的其他webdriver 149
11.3 处理重定向 150
11.4 关于JavaScript的最后提醒 151
第12章 利用API抓取数据 152
12.1 API概述 152
12.1.1 HTTP方法和API 154
12.1.2 更多关于API响应的介绍 155
12.2 解析JSON数据 156
12.3 无文档的API 157
12.3.1 查找无文档的API 159
12.3.2 记录未被记录的API 160
12.3.3 自动查找和记录API 160
12.4 API与其他数据源结合 163
12.5 再说一点API 165
第13章 图像识别与文字处理 167
13.1 OCR库概述 168
13.1.1 Pillow 168
13.1.2 Tesseract 168
13.1.3 NumPy 170
13.2 处理格式规范的文字 171
13.2.1 自动调整图像 173
13.2.2 从网站图片中抓取文字 176
13.3 读取验证码与训练Tesseract 178
13.4 获取验证码并提交答案 183
第14章 避开抓取陷阱 186
14.1 道德规范 186
14.2 让网络机器人看着像人类用户 187
14.2.1 修改请求头 187
14.2.2 用JavaScript处理cookie 189
14.2.3 时间就是一切 191
14.3 常见表单安全措施 191
14.3.1 隐含输入字段值 192
14.3.2 避免蜜罐 192
14.4 问题检查表 194
第15章 用爬虫测试网站 196
15.1 测试简介 196
15.2 Python单元测试 197
15.3 Selenium单元测试 201
15.4 单元测试与Selenium单元测试的选择 205
第16章 并行网页抓取 206
16.1 进程与线程 206
16.2 多线程抓取 207
16.2.1 竞争条件与队列 209
16.2.2 threading模块 212
16.3 多进程抓取 214
16.3.1 多进程抓取 216
16.3.2 进程间通信 217
16.4 多进程抓取的另一种方法 219
第17章 远程抓取 221
17.1 为什么要用远程服务器 221
17.1.1 避免IP地址被封杀 221
17.1.2 移植性与扩展性 222
17.2 Tor代理服务器 223
17.3 远程主机 224
17.3.1 从网站主机运行 225
17.3.2 从云主机运行 225
17.4 其他资源 227
第18章 网页抓取的法律与道德约束 228
18.1 商标、版权、专利 228
18.2 侵害动产 230
18.3 计算机欺诈与滥用法 232
18.4 robots.txt和服务协议 233
18.5 3个网络爬虫 236
18.5.1 eBay起诉Bidder’sEdge侵害其动产 236
18.5.2 美国政府起诉Auernheimer与《计算机欺诈与滥用法》 237
18.5.3 Field起诉Google:版权和robots.txt 239
18.6 勇往直前 239
关于作者 241
关于封面 241