Python 美丽之群:什么';这是';lxml';和';语法分析器';和';html5lib';解析器?

Python 美丽之群:什么';这是';lxml';和';语法分析器';和';html5lib';解析器?,python,html,web-scraping,beautifulsoup,lxml,Python,Html,Web Scraping,Beautifulsoup,Lxml,使用Beautiful Soup时,“lxml”与“html.parser”和“html5lib”有什么区别? 你什么时候会使用其中一种方法来替代另一种方法,以及每种方法的优点?当我使用它们时,它们似乎是可以互换的,但这里的人告诉我,我应该使用不同的。我想加强我的理解;我在这里读过几篇关于这个的帖子,但他们根本没有详细讨论过它的用途 例如: soup = BeautifulSoup(response.text, 'lxml') 主要区别在BeautifulSoup文档中突出显示: 为什么

使用Beautiful Soup时,“lxml”与“html.parser”和“html5lib”有什么区别?

你什么时候会使用其中一种方法来替代另一种方法,以及每种方法的优点?当我使用它们时,它们似乎是可以互换的,但这里的人告诉我,我应该使用不同的。我想加强我的理解;我在这里读过几篇关于这个的帖子,但他们根本没有详细讨论过它的用途

例如:

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

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

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

  • html.parser
    -内置-无需额外依赖项
  • html5lib
    -最宽松-如果HTML被破坏,最好使用它
  • lxml
    -最快的
从公司的优势和劣势汇总表中:

  • html.parser-
    BeautifulSoup(标记,“html.parser”)

    • 优点:包括电池,速度快,轻便(从Python 2.7.3和3.2开始)

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

  • lxml-
    BeautifulSoup(标记,“lxml”)

    • 优点:速度快,宽大

    • 缺点:外部C依赖

  • html5lib-
    BeautifulSoup(标记,“html5lib”)

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

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


  • 谢谢——
    html5lib
    (作为已损坏HTML的解析器)刚刚保存了我的培根