当前位置: 首页 > 面试题库 >

在python中解析HTML-lxml或BeautifulSoup?哪种用途更适合哪种用途?

荆学民
2023-03-14
问题内容

据我所知,Python中两个主要的HTML解析库是lxml和BeautifulSoup。我为正在从事的项目选择了BeautifulSoup,但是我选择它的原因并不多,除了找到更易于学习和理解的语法外。但是我看到很多人似乎都喜欢lxml,而且我听说lxml更快。

所以我想知道一个相对于另一个的优势是什么?我什么时候要使用lxml,什么时候可以使用BeautifulSoup更好?还有其他值得考虑的图书馆吗?


问题答案:

对于初学者,BeautifulSoup不再积极维护,并且
作者甚至建议使用
lxml之类的替代方法。

从链接页面引用:

在实际的HTML中,Beautiful
Soup的3.1.0版比3.0.8版的效果要差得多。最常见的问题是标签处理不正确,“格式错误的开始标签”错误和“错误的结束标签”错误。本页说明发生了什么,如何解决问题以及您现在可以做什么。

该页面最初写于2009年3月。此后,发布了3.2系列,取代了3.1系列,并且4.x系列的开发也正在进行中。此页面将保留以供历史使用。

tl; dr

请改用3.2.0。



 类似资料:
  • 问题内容: 我目前正在寻找其他搜索方法,而不是拥有庞大的SQL查询。我最近看过Elasticsearch,并玩过whoosh(搜索引擎的Python实现)。 您能给出选择理由吗? 问题答案: 作为ElasticSearch的创建者,也许我可以为您提供一些理由,说明我为什么继续并首先创建它:)。 使用纯Lucene具有挑战性。如果要使其真正发挥出色,就需要注意很多事情,而且它是一个库,因此没有分布式

  • 问题内容: 我想解析一些HTML,以便找到某些属性/标签等的值。 您推荐什么HTML解析器?任何利弊? 问题答案: NekoHTML,TagSoup和JTidy将允许您解析HTML,然后使用XML工具(例如XPath)进行处理。

  • 问题内容: 我编写了很多解析器。到目前为止,我一直使用HtmlUnit无头浏览器进行解析和浏览器自动化。 现在,我想将两个任务分开。 由于我80%的工作仅涉及解析,因此我想使用简单的HTML解析器,因为在HtmlUnit中花很多时间才能首先加载页面,然后获取源然后解析它。 我想知道哪个HTML解析器是最好的。如果解析器与HtmlUnit解析器接近,则解析器会更好。 编辑: 最好的情况是,我至少需要

  • 问题内容: 我编写了很多解析器。到目前为止,我一直使用HtmlUnit无头浏览器进行解析和浏览器自动化。 现在,我想将两个任务分开。 由于我80%的工作仅涉及解析,因此我想使用简单的HTML解析器,因为在HtmlUnit中花费大量时间先加载页面,然后获取源然后解析它。 我想知道哪个HTML解析器是最好的。如果解析器与HtmlUnit解析器接近,则解析器会更好。 编辑: 最好的情况是,我至少需要以下

  • 问题内容: 使用哪些IDE(“ GUI /编辑器”)进行Python编码? 问题答案: 或者,以纯文本格式:(也可以作为aa 屏幕截图获得) 缩略语: 我没有提到语法高亮之类的基础知识,因为我期望默认情况下这些。 这只是一份反映你的反馈和意见的清单,我不主张使用这些工具。当你继续发布答案时,我将不断更新此列表。 PS。你能帮我将上述编辑器的功能添加到列表中吗(例如自动完成,调试等)?

  • 问题内容: 编写了很多解析器。到目前为止,我一直使用HtmlUnit无头浏览器进行解析和浏览器自动化。 现在,我想将两个任务分开。 由于我80%的工作仅涉及解析,因此我想使用简单的HTML解析器,因为在HtmlUnit中花很多时间才能首先加载页面,然后获取源然后解析它。 我想知道哪个HTML解析器是最好的。如果解析器与HtmlUnit解析器接近,则解析器会更好。 编辑: 最好的情况是,我至少需要以