python: difference between 'lxml' and “html.parser” and “html5lib” with beautiful soup?
使用漂亮的汤时," lxml"与" html.parser"与" html5lib"有什么区别? 您什么时候可以使用另一种方法以及每种方法的优点? 从我每次使用的时间来看,它们似乎是可互换的,但我确实得到纠正,我应该使用与此处的人员不同的方法。 想加深我对这些的理解。 我在这里已经阅读了几篇关于此的文章,但它们根本没有涉及太多用途。
范例-
1 | soup = BeautifulSoup(response.text, 'lxml') |
从文档的优缺点汇总表中:
html.parser-
-
优势:包括电池,不错的速度,宽大(从Python 2.7.3和3.2开始)。
-
缺点:不太宽大(在Python 2.7.3或3.2.2之前)
lxml-
-
优点:非常快,宽大
-
缺点:外部C依赖
html5lib-
-
优点:极为宽松,以与网络浏览器相同的方式解析页面,创建有效的HTML5
-
缺点:非常慢,外部Python依赖
主要区别在BeautifulSoup文档中突出显示:
- 解析器之间的差异
为什么您更喜欢一个解析器而不是其他解析器的基本原因:
-
html.parser -内置-不需要额外的依赖项 -
html5lib -最宽大-如果HTML损坏,最好使用它 -
lxml -最快