【问题标题】:Are there any benefits of using Beautiful Soup to parse XML over using lxml alone?与单独使用 lxml 相比,使用 Beautiful Soup 解析 XML 有什么好处吗?
【发布时间】:2015-09-29 20:34:33
【问题描述】:

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

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

【问题讨论】:

    标签: python xml beautifulsoup lxml


    【解决方案1】:

    如果你看一下这个关于BeautifulSoup Parser的链接:

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

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

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

    【讨论】:

      【解决方案2】:

      lxml 非常快,并且相对内存效率较高。 BeautifulSoup 本身在效率方面的得分不太高,但它的构建是为了与非标准/损坏的 html 和 xml 兼容,这意味着它最终更加通用。

      您选择使用哪个实际上仅取决于您的用例——网络抓取?可能是BS。解析机器编写的结构化元数据? lxml 是一个不错的选择。

      在进行切换时还需要考虑学习曲线 - 两个系统执行搜索和导航策略的方式略有不同;足以让在从另一个系统开始之后学习另一个系统成为一项不平凡的任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 2015-11-08
        • 2018-10-11
        • 2020-01-01
        • 1970-01-01
        • 2010-11-25
        • 2011-09-27
        相关资源
        最近更新 更多