python:“lxml”和“html.parser”以及“html5lib”与靓汤的区别?

2024-04-28 14:05:58 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用漂亮的soup时,“lxml”与“html.parser”和“html5lib”有什么区别?你什么时候会使用一个比另一个和各自的好处?从我使用它们的时候起,它们似乎是可以互换的,但我确实得到了纠正,我应该使用不同于这里的人的一个。想加强我对这些的理解。我在这里读过几篇关于这个的文章,但是它们根本就没有多大用处。

示例-

soup = BeautifulSoup(response.text, 'lxml')

Tags: textparser示例responsehtml文章lxmlsoup
2条回答

docs的优缺点汇总表中:

  1. html.parser-BeautifulSoup(markup, "html.parser")

    • 优点:包括电池,速度适中,使用方便(从Python2.7.3和3.2开始)。

    • 缺点:不太宽容(在Python 2.7.3或3.2.2之前)

  2. lxml-BeautifulSoup(markup, "lxml")

    • 优点:速度快,宽大

    • 缺点:外部C依赖性

  3. html5lib-BeautifulSoup(markup, "html5lib")

    • 优点:极为宽松,像web浏览器一样解析页面,创建有效的HTML5

    • 缺点:非常慢,外部Python依赖性

BeautifulSoup文档中强调了关键的区别:

基本的理由是,为什么您希望使用一个解析器而不是其他解析器:

  • html.parser-内置-不需要额外的依赖项
  • html5lib-最宽容的-如果HTML被破坏,最好使用它
  • lxml-最快的

相关问题 更多 >