- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
12.6 小结
现在在为难于解析内容的网页编写抓取器时,你应该感到胸有成竹。你可以使用 Selenium 或 Ghost.py 打开浏览器,读取一个网页,同页面交互,并且抽取数据。你可以使用 Scrapy 来爬取整个域名(或一系列域名),并且抽取大量的数据。你同样可以练习正则表达式语法,编写自己的 Python 类(在 Scrapy 的帮助下)。
掌握这些后,Python 代码就会顺其自然地完成了。你探索了一些 bash 命令。你积累了一些非常棒的与 shell 脚本交互的经验,正在成为一名专业的数据处理者。表 12-2 列出了本章中引入的新概念和工具。
表12-2:新的Python编程概念与库
概念/库 | 目的 |
Selenium 库 | 该库用于直接同网页和它们的元素交互,你可以使用所选的浏览器,也可以使用无头浏览器。在你需要点击元素、在表单中输入信息,并且同需要几个请求来加载内容的页面交互时,表现良好 |
PhantomJS 库 | JavaScript 库,作为无头浏览器,用于在服务器或无浏览器机器上进行网页抓取。还可用来只使用 JavaScript 编写抓取器 |
Ghost.py 库 | 通过 Qt WebKit 而不是通过传统的浏览器来与网页交互的库。可以在需要浏览器等相似条件下使用,有编写原生 JavaScript 的能力 |
Scrapy 库 | 用于跨越一个域名或多个不同域名爬取大量网页。在你需要研究多个域名或多种页面类型来收集数据时很有用处 |
Scrapy 爬取规则 | 爬取规则告诉你的爬虫匹配 URL 结构,并识别出可能存在该 URL 的页面位置。这使得爬虫可以浏览并找到更多信息 |
最后,对于抓取器,确保你遵循一些基本的逻辑(见表 12-3)。
表12-3:使用哪一个抓取器
抓取器类型 | 库 | 使用场景 |
页面读取抓取器 | BeautifulSoup、LXML | 简单页面抓取,你想要的所有数据在一次请求后全部加载于页面上 |
基于浏览器的抓取器 | Selenium、PhantomJS、Ghost.py | 基于浏览器的抓取,你需要同页面上的元素交互,或这个页面需要不同的请求加载 |
Web 爬虫 | Scrapy | 用快速和异步的方式跨越多个页面跟随链接或解析相似的页面。如果你需要跨越整个域名或一系列域名的多个匹配,这会很有用 |
后面几章关注如何拓展使用 API 的 Web 技巧,以及规模化和自动化数据。这些是将学到的所有知识整合为一系列可复用、可执行的脚本的最后几步——其中一些脚本不需要做任何事情就可运行。还记得你在开始阅读本书时想到的那些死记硬背的任务吗?以后再也不必死记硬背它们了——继续阅读!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论