第一部分 创建爬虫 2
第1章 初见网络爬虫 2
1.1网络连接 2
1.2 BeautifulSoup简介 4
1.2.1安装BeautifulSoup 5
1.2.2运行BeautifulSoup 7
1.2.3可靠的网络连接 8
第2章 复杂HTM L解析 11
2.1不是一直都要用锤子 11
2.2再端一碗BeautifulSoup 12
2.2.1 BeautifulSoup的find()和findAll() 13
2.2.2其他BeautifulSoup对象 15
2.2.3导航树 16
2.3正则表达式 19
2.4正则表达式和BeautifulSoup 23
2.5获取属性 24
2.6 Lambda表达式 24
2.7超越BeautifulSoup 25
第3章 开始采集 26
3.1遍历单个域名 26
3.2采集整个网站 30
3.3通过互联网采集 34
3.4用Scrapy采集 38
第4章 使用API 42
4.1 API概述 43
4.2 API通用规则 43
4.2.1方法 44
4.2.2验证 44
4.3服务器响应 45
4.4 Echo Nest 46
4.5 Twitter API 48
4.5.1开始 48
4.5.2几个示例 50
4.6 Google API 52
4.6.1开始 52
4.6.2几个示例 53
4.7解析JSON数据 55
4.8回到主题 56
4.9再说一点API 60
第5章 存储数据 61
5.1媒体文件 61
5.2把数据存储到CSV 64
5.3 MySQL 65
5.3.1安装MySQL 66
5.3.2基本命令 68
5.3.3与Python整合 71
5.3.4数据库技术与最佳实践 74
5.3.5 MySQL里的“六度空间游戏” 75
5.4 Email 77
第6章 读取文档 80
6.1文档编码 80
6.2纯文本 81
6.3 CSV 85
6.4 PDF 87
6.5微软Word和.docx 88
第二部分 高级数据采集 94
第7章 数据清洗 94
7.1编写代码清洗数据 94
7.2数据存储后再清洗 98
第8章 自然语言处理 103
8.1概括数据 104
8.2马尔可夫模型 106
8.3自然语言工具包 112
8.3.1安装与设置 112
8.3.2用NLTK做统计分析 113
8.3.3用NLTK做词性分析 115
8.4其他资源 119
第9章 穿越网页表单与登录窗口进行采集 120
9.1 Python Requests库 120
9.2提交一个基本表单 121
9.3单选按钮、复选框和其他输入 123
9.4提交文件和图像 124
9.5处理登录和cookie 125
9.6其他表单问题 127
第10章 采集JavaScript 128
10.1 JavaScript简介 128
10.2 Ajax和动态HTML 131
10.3处理重定向 137
第11章 图像识别与文字处理 139
11.1 OCR库概述 140
11.1.1 Pillow 140
11.1.2 Tesseract 140
11.1.3 NumPy 141
11.2处理格式规范的文字 142
11.3读取验证码与训练Tesseract 146
11.4获取验证码提交答案 151
第12章 避开采集陷阱 154
12.1道德规范 154
12.2让网络机器人看起来像人类用户 155
12.2.1修改请求头 155
12.2.2处理cookie 157
12.2.3时间就是一切 159
12.3常见表单安全措施 159
12.3.1隐含输入字段值 159
12.3.2避免蜜罐 160
12.4问题检查表 162
第13章 用爬虫测试网站 164
13.1 测试简介 164
13.2 Python单元测试 165
13.3 Selenium单元测试 168
13.4 Python单元测试与Selenium单元测试的选择 172
第14章 远程采集 174
14.1为什么要用远程服务器 174
14.1.1避免IP地址被封杀 174
14.1.2移植性与扩展性 175
14.2 Tor代理服务器 176
14.3远程主机 177
14.3.1从网站主机运行 178
14.3.2从云主机运行 178
14.4其他资源 179
14.5勇往直前 180
附录A Python简介 181
附录B互联网简介 184
附录C网络数据采集的法律与道德约束 188
作者简介 200
封面介绍 200