使用 BeautifulSoup 与 XPath 进行 Python Web Scraping 的优缺点

McL*_*odx 4 python xpath beautifulsoup web-scraping

我最近一直在学习使用 Python 中的 BeautifulSoup 进行网页抓取,但今天早些时候我被建议考虑使用 XPath 表达式。

XPath 和 BeautifulSoup 的工作方式有何不同?

Spa*_*ade 5

我已经使用过 BeautifulSoup 和 lxml 并且根据经验倾向于使用 lxml。请参阅 此处的性能比较。使用 BeautifulSoup 时要注意的一件事是解析器的显式选择。为您选择的默认解析器可能会在没有警告的情况下错误地解析结果,这可能会导致噩梦 -我在这里的经验

话虽如此,我发现编写 bs4 代码段通常比相应的 lxml 更容易。


小智 4

我建议 bs4,它的用法和文档更友好,会节省您的时间并增加信心,这在您自学字符串操作时非常重要。

但实际上,它需要强大的CPU。我曾经在我的 1 核 VPS 上抓取不超过 30 个连接,并且 python 进程的 CPU 使用率保持在 100%。这可能是实施不当的结果,但后来我将所有内容更改为重新编译,性能问题就消失了。

至于性能,正则表达式 > lxml >> bs4。至于把事情做好,没有什么区别。