BeautifulSoup:如何忽略虚假结束标记

car*_*ten 4 html python beautifulsoup python-3.x

我已经阅读了很多关于BeautifulSoup的好东西,这就是为什么我现在正试图用它来刮掉一组格式错误的HTML网站.

不幸的是,BeautifulSoup的一个功能目前几乎是一个showstopper:

似乎当BeautifulSoup遇到一个</p>从未打开的结束标记(在我的情况下)时,它决定改为结束文档.此外,在这种情况下,该find方法似乎不会搜索(自感应)</html>标签后面的内容.这意味着当我感兴趣的块恰好位于虚假的结束标记后面时,我无法访问内容.

有没有办法可以配置BeautifulSoup来忽略不匹配的结束标记,而不是在遇到它们时关闭文档?

Mar*_*ers 5

BeautifulSoup不进行任何解析,它使用专用解析器(lxmlhtml.parserhtml5lib)的输出.

如果您当前使用的解析器不能按照您希望的方式处理损坏的HTML,请选择其他解析器.lxml是一个更快的解析器,可以很好地处理损坏的HTML,html5lib最接近你的浏览器解析破碎的HTML,但速度慢很多.

另请参阅BeautifulSoup文档中的安装解析器,以及解析器之间差异部分.