![](/img/trans.png)
[英]difference between lxml and html5lib in the context of beautifulsoup
[英]BeautifulSoup: what's the difference between 'lxml' and 'html.parser' and 'html5lib' parsers?
使用 Beautiful Soup 时,“lxml”和“html.parser”和“html5lib”有什么区别?
你什么时候会使用一个而不是另一个以及每个的好处? 当我使用它们时,它们似乎可以互换,但这里的人纠正我,我应该使用不同的。 我想加强我的理解; 我已经在这里阅读了几篇关于此的帖子,但他们根本没有过多地讨论用途。
示例:
soup = BeautifulSoup(response.text, 'lxml')
从文档的优点和缺点汇总表:
html.parser - BeautifulSoup(markup, "html.parser")
优点:包括电池,速度不错,宽松(从 Python 2.7.3 和 3.2 开始。)
缺点:不是很宽容(在 Python 2.7.3 或 3.2.2 之前)
lxml - BeautifulSoup(markup, "lxml")
优点:非常快,宽大
缺点:外部 C 依赖
html5lib - BeautifulSoup(markup, "html5lib")
优点:极其宽松,以与 Web 浏览器相同的方式解析页面,创建有效的 HTML5
缺点:非常慢,外部 Python 依赖
BeautifulSoup 文档中突出显示了主要区别:
为什么您更喜欢一个解析器而不是其他解析器的基本推理:
html.parser
- 内置 -不需要额外的依赖html5lib
-最宽松的- 如果 HTML 损坏,最好使用它lxml
-最快的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.