【问题标题】:How to parse malformed HTML in python如何在python中解析格式错误的HTML
【发布时间】:2010-10-28 15:01:32
【问题描述】:

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

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

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

有时我会收到错误,似乎 tidylib 无法修复格式错误的 html。

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

【问题讨论】:

    标签: python html lxml


    【解决方案1】:

    Beautiful Soup 可以很好地处理无效/损坏的 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>
    

    【讨论】:

      【解决方案2】:

      既然你已经在使用lxml,你有没有试过lxml'sElementSoup模块?

      如果 ElementSoup 无法修复 HTML,那么您可能需要先应用自己的过滤器,这些过滤器基于您自己对数据损坏方式的观察。

      【讨论】:

      • 链接被破坏;编辑它们。希望新位置包含您最初指向的相同内容。
      • 如果您没有安装漂亮的汤,元素汤可能需要它。就做pip install beautifulsoup
      猜你喜欢
      • 2015-10-07
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2012-12-16
      • 2018-05-21
      • 2010-11-10
      相关资源
      最近更新 更多