什么是Python中最宽容的HTML解析器?

我有一些随机HTML,我使用BeautifulSoup来解析它,但在大多数情况下(> 70%),它会窒息.我尝试使用Beautiful soup 3.0.8和3.2.0(3.1.0向上有一些问题),但结果几乎相同.

我可以从脑海中回忆起Python中可用的几个HTML解析器选项:

> BeautifulSoup
> lxml
> pyquery

我打算测试所有这些,但我想知道你的测试中哪一个最宽容,甚至可以尝试解析坏的HTML.

最佳答案
他们都是.我还没有遇到lxml.html无法解析的任何html页面.如果您尝试解析的页面上的lxml barfs总是可以使用一些正则表达式对它们进行预处理,以保持lxml的快乐.

lxml本身是相当严格的,但lxml.html是一个不同的解析器,可以处理非常破碎的HTML.对于极其丰富的html,lxml还附带了与BeautifulSoup库接口的lxml.html.soupparser.

这里描述了使用lxml.html解析损坏的html的一些方法:http://lxml.de/elementsoup.html

转载注明原文:什么是Python中最宽容的HTML解析器? - 代码日志