返回介绍

12.6 小结

发布于 2024-01-27 21:43:11 字数 1966 浏览 0 评论 0 收藏 0

现在在为难于解析内容的网页编写抓取器时,你应该感到胸有成竹。你可以使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文