使用 Python 进行 Web 抓取

用于 Web 抓取的有用 Python 包(按字母顺序排列)

发出请求和收集数据

requests

用于发出 HTTP 请求的简单但功能强大的包。

requests-cache

缓存 requests; 缓存数据非常有用。在开发过程中,这意味着你可以避免不必要地访问网站。在运行真正的集合时,这意味着如果你的刮刀出于某种原因崩溃(也许你没有在网站上处理一些不寻常的内容……?也许网站崩溃了??)你可以很快地重复收集从你离开的地方。

scrapy

对于构建 Web 爬虫非常有用,你需要比使用 requests 更强大的功能并遍历页面。

selenium

用于浏览器自动化的 Selenium WebDriver 的 Python 绑定。使用 requests 直接发出 HTTP 请求通常更容易检索网页。但是,当仅使用 requests 无法复制网站的所需行为时,这仍然是一个有用的工具,特别是当需要 JavaScript 在页面上呈现元素时。

HTML 解析

BeautifulSoup

使用许多不同的解析器查询 HTML 和 XML 文档(Python 的内置 HTML Parser,html5liblxmllxml.html

lxml

处理 HTML 和 XML。可用于通过 CSS 选择器和 XPath 从 HTML 文档中查询和选择内容。