如何在python中解析格式错误的HTML

lor*_*zov 15 html python lxml

我需要浏览解析的HTML文档的DOM树.

我在使用lxml解析字符串之前使用的是uTidyLib

a = tidy.parseString(html_code,options)dom = etree.fromstring(str(a))

有时我得到一个错误,似乎tidylib无法修复格式错误的HTML.

如何在不出错的情况下解析每个HTML文件(仅解析一些无法修复的文件部分)?

dbr*_*dbr 25

美丽的汤用无效/破坏的HTML做得很好

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup("<htm@)($*><body><table <tr><td>hi</tr></td></body><html")
>>> print soup.prettify()
<htm>
 <body>
  <table>
   <tr>
    <td>
     hi
    </td>
   </tr>
  </table>
 </body>
</htm>
Run Code Online (Sandbox Code Playgroud)


Van*_*ale 13

由于您已经在使用lxml,您是否尝试过lxml的 ElementSoup模块?

如果ElementSoup无法修复HTML,那么您可能需要首先应用自己的过滤器,这些过滤器基于您自己对数据如何被破坏的观察.