2013-11-26 100 views
0

beautifulsoup4碰巧在某些情况下会截断无效(我猜)html。我很想强迫它不这样做。我假设在那里没有“正式”的方式,但也许你已经在某种程度上完成了?防止bs4截断html

+0

请给出一个HTML输入的例子,你看到的输出,你使用的代码,你使用的bs4版本,以及哪个解析器(和解析器版本,以及,如果它是lxml, libxml2版本)。 – abarnert

回答

1

如果HTML被破坏,重建可行的元素树并不总是可能的。但是,您可以尝试使用不同的后端解析器。并非所有的解析器都可以将破碎的HTML视为相同。

html5lib解析器是在处理损坏的HTML尤其擅长,处理这样的输入相同,将多数浏览器:

soup = BeautifulSoup(htmlcontent, 'html5') 

您也可以尝试lxml这里。这两个库都是单独安装的。

+0

谢谢。性能不是一个关心这里只是好奇,是'html5'慢或它只是我? – nutship

+1

'html5lib'确实比较慢,它做了很多工作。 –