python:'lxml'和"html.parser"和"html5lib"之间的区别是美味的汤?

duc*_*way 9 python beautifulsoup

当使用美丽的汤时,'lxml'和"html.parser"和"html5lib"之间有什么区别?你何时会使用一个而不是每个人的好处?从我使用它们的时间看起来它们似乎是可以互换的,但我确实得到纠正,我应该使用与这里的人不同的一个.想加强我对这些的理解.我在这里已经阅读了几篇有关此内容的帖子,但它们并没有完全用于任何用途.

示例 -

soup = BeautifulSoup(response.text, 'lxml')
Run Code Online (Sandbox Code Playgroud)

Vin*_*iar 15

文档的优缺点总结表:

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

    • 优点:包括电池,体面速度,宽松(从Python 2.7.3和3.2.)

    • 缺点:不是很宽松(在Python 2.7.3或3.2.2之前)

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

    • 优点:非常快,宽松

    • 缺点:外部C依赖

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

    • 优点:非常宽松,Parses页面与Web浏览器相同,创建有效的HTML5

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


ale*_*cxe 7

BeautifulSoup文档中突出显示了主要区别:

基本原因为什么你更喜欢一个解析器而不是其他解析器:

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

  • 谢谢 - `html5lib`(作为损坏的 HTML 的解析器)刚刚救了我的命 (3认同)