描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115479679
针对Python 3.6版本编写。
提供示例完整源码和实例网站搭建源码,确保用户能在本地成功复现爬取网站环境,并保障网站的稳定性与可靠性以及代码运行结果的可再现性。
Internet上包含了许多有用的数据,其中大部分是可以免费公开访问的。但是,这些数据不容易使用,它们内嵌在网站的架构和样式中,在提取时也需要多加小心。网络爬取技术作为一种收集和理解网络上海量信息的方式,正变得越来越有用。
本书是使用Python 3.6的新特性来爬取网络数据的入门指南。本书讲解了从静态网站提取数据的方法,以及如何使用数据库和文件缓存技术来节省时间并管理服务器负载,然后介绍了如何使用浏览器、爬虫和并发爬虫开发一个更为复杂的爬虫。
借助于PyQt和Selenium,你可以决定何时以及如何从依赖JavaScript的网站上爬取数据,以及更好地理解在受CAPTCHA保护的复杂网站上提交表单的方法。本书还讲解了使用Python包(比如mechanize)进行自动化处理的方法、使用Scrapy库创建基于类的爬虫的方法,以及如何在真实的网站上实施所学的爬虫技巧。
本书*后还涵盖了使用爬虫对网站进行测试、远程爬取技术、图像处理以及其他相关的主题。
本书主要内容如下:
使用简单的Python程序从页面中提取数据;
构建并发爬虫,对页面进行并行处理;
通过跟踪链接来爬取一个网站;
从HTML中提取特性;
缓存下载的HTML,以供复用;
比较并发模型,确定比较快的爬虫;
解析依赖于JavaScript的网站;
与表单和会话进行交互。
《用Python写网络爬虫(第 2版》适合有一定Python编程经验而且对爬虫技术感兴趣的读者阅读。
1.1 网络爬虫何时有用 1
1.2 网络爬虫是否合法 2
1.3 Python 3 3
1.4 背景调研 4
1.4.1 检查robots.txt 4
1.4.2 检查网站地图 5
1.4.3 估算网站大小 6
1.4.4 识别网站所用技术 7
1.4.5 寻找网站所有者 9
1.5 编写第 一个网络爬虫 11
1.5.1 抓取与爬取的对比 11
1.5.2 下载网页 12
1.5.3 网站地图爬虫 15
1.5.4 ID遍历爬虫 17
1.5.5 链接爬虫 19
1.5.6 使用requests库 28
1.6 本章小结 30
第 2章 数据抓取 31
2.1 分析网页 32
2.2 3种网页抓取方法 34
2.2.1 正则表达式 35
2.2.2 Beautiful Soup 37
2.2.3 Lxml 39
2.3 CSS选择器和浏览器控制台 41
2.4 XPath选择器 43
2.5 LXML和家族树 46
2.6 性能对比 47
2.7 抓取结果 49
2.7.1 抓取总结 50
2.7.2 为链接爬虫添加抓取回调 51
2.8 本章小结 55
第3章 下载缓存 56
3.1 何时使用缓存 57
3.2 为链接爬虫添加缓存支持 57
3.3 磁盘缓存 60
3.3.1 实现磁盘缓存 62
3.3.2 缓存测试 64
3.3.3 节省磁盘空间 65
3.3.4 清理过期数据 66
3.3.5 磁盘缓存缺点 68
3.4 键值对存储缓存 69
3.4.1 键值对存储是什么 69
3.4.2 安装Redis 70
3.4.3 Redis概述 71
3.4.4 Redis缓存实现 72
3.4.5 压缩 74
3.4.6 测试缓存 75
3.4.7 探索requests-cache 76
3.5 本章小结 78
第4章 并发下载 79
4.1 100万个网页 79
4.2 串行爬虫 82
4.3 多线程爬虫 83
4.4 线程和进程如何工作 83
4.4.1 实现多线程爬虫 84
4.4.2 多进程爬虫 87
4.5 性能 91
4.6 本章小结 94
第5章 动态内容 95
5.1 动态网页示例 95
5.2 对动态网页进行逆向工程 98
5.3 渲染动态网页 104
5.3.1 PyQt还是PySide 105
5.3.2 执行JavaScript 106
5.3.3 使用WebKit与网站交互 108
5.4 渲染类 111
5.5 本章小结 117
第6章 表单交互 119
6.1 登录表单 120
6.2 支持内容更新的登录脚本扩展 128
6.3 使用Selenium实现自动化表单处理 132
6.4 本章小结 135
第7章 验证码处理 136
7.1 注册账号 137
7.2 光学字符识别 140
7.3 处理复杂验证码 144
7.4 使用验证码处理服务 144
7.4.1 9kw入门 145
7.4.2 报告错误 150
7.4.3 与注册功能集成 151
7.5 验证码与机器学习 153
7.6 本章小结 153
第8章 Scrapy 154
8.1 安装Scrapy 154
8.2 启动项目 155
8.2.1 定义模型 156
8.2.2 创建爬虫 157
8.3 不同的爬虫类型 162
8.4 使用shell命令抓取 163
8.4.1 检查结果 165
8.4.2 中断与恢复爬虫 167
8.5 使用Portia编写可视化爬虫 170
8.5.1 安装 170
8.5.2 标注 172
8.5.3 运行爬虫 176
8.5.4 检查结果 176
8.6 使用Scrapely实现自动化抓取 177
8.7 本章小结 178
第9章 综合应用 179
9.1 Google搜索引擎 179
9.2 Facebook 184
9.2.1 网站 184
9.2.2 Facebook API 186
9.3 Gap 188
9.4 宝马 192
9.5 本章小结 196
评论
还没有评论。