使用Beautiful Soup来解析XML而仅使用lxml有什么好处?

时间:2015-07-10 23:34:45

标签: python xml beautifulsoup lxml

我经常使用Beautiful Soup来解析HTML文件,所以当我最近需要解析XML文件时,我选择使用它。但是,因为我正在解析一个非常大的文件,所以它失败了。在研究它失败的原因时,我被引导到了这个问题:Loading huge XML files and dealing with MemoryError

这引出了我的问题:如果lxml可以处理大文件而Beautiful Soup不能,那么使用Beautiful Soup有什么好处而不是直接使用lxml吗?

2 个答案:

答案 0 :(得分:1)

如果您查看有关BeautifulSoup Parser的链接:

“BeautifulSoup”是一个解析损坏的 HTML的Python包,而“lxml”的速度更快但是具有高质量的HTML / XML。因此,如果您正在处理第一个,那么您最好使用BS ... 拥有“lxml”的优势在于您可以获得soupparser

从我在顶部提供的链接,它显示了如何使用“BS”与“lxml”的功能

所以最后 ...你最好用“lxml”。

答案 1 :(得分:1)

lxml非常快,而且内存效率相对较高。 BeautifulSoup本身在效率方面得分较低,但是它与非标准/破碎的html和xml兼容,这意味着它最终更加通用。

您选择使用的只是依赖于您的用例 - 网页抓取?可能是BS。解析机器编写的结构化元数据? lxml是一个很好的选择。

在进行切换时还需要考虑学习曲线 - 两个系统以稍微不同的方式实现搜索和导航策略;足以在开始学习另一个非平凡任务后学习一个系统。