【问题标题】:Parsing HTML in Python [closed]在 Python 中解析 HTML [关闭]
【发布时间】:2010-10-17 13:57:47
【问题描述】:

如果我不能使用 BeautifulSoup 或 lxml,解析 HTML 的最佳选择是什么?我有一些使用 SGMLlib 的代码,但它有点低级,现在已弃用。

如果它能够忍受一些格式错误的 HTML,我会更喜欢它,尽管我很确定大部分输入都会很干净。

【问题讨论】:

  • 如果我可能会问,你为什么不能使用 lxml 或 BS?
  • 我试图避免答案完全偏离轨道。我避免使用 BeautifulSoup 的原因非常值得商榷,但我把它留到了另一天! (我避免使用 lxml 的原因很简单——在 Mac OSX 或 Linux 上安装它完全失败:(
  • 这里是如何在 Linux 上安装 lxml:sudo apt-get install libxml2-dev libxslt-dev python2.7-dev(如果你使用 Python 2.6,python2.6-dev)。然后sudo pip install lxml.

标签: python html-parsing


【解决方案1】:

Python 有一个native HTML parser,但是 Nick 建议的 Tidy 包装器可能也是一个不错的选择。 Tidy 是一个很常见的库,(是用 C 写的吗?)

【讨论】:

  • 有人能告诉我为什么人们建议使用 BeautifulSoup 或 lxml 而不是原生 HTML 解析器吗?
  • 链接坏了……我猜这是html.parser?或version for legacy Python
  • 模块仍然存在,但 URL 似乎已更改。固定。
【解决方案2】:

也许µTidylib 会满足您的需求?

【讨论】:

    【解决方案3】:

    您可以使用 Pallet 在 Mac (OS X) 上轻松无缝地安装 lxml 和许多其他 python 模块,即MacPorts official GUI

    模块名称为 py27-lxml。像 1,2,3 一样简单。

    【讨论】:

      【解决方案4】:

      http://www.xmlhack.com/read.php?item=1392 http://sourceforge.net/projects/pirxx/

      http://pyxml.sourceforge.net/topics/

      我没有太多使用 python 的经验,但我过去使用过 Xerces(来自 Apache 基金会),发现它非常有用。学习曲线也不错,尽管我不是从 python 的角度来的。不过我建议你考虑一下。 (我包含的前两个链接讨论了 Xerces 的 python 接口,最后一个是谷歌第一次点击“python xml”)。

      【讨论】:

      • 我知道你想要一个 HTML 解析器,但这些都是不错的起点。
      【解决方案5】:

      htql 擅长处理格式错误的 html:

      http://htql.net/

      【讨论】:

        【解决方案6】:

        html5lib 不错:
        http://code.google.com/p/html5lib/

        更新:上面的链接坏了。以上第三方镜像,可通过https://github.com/html5lib/gcode-import访问

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
        • 这不是相当仅链接的答案,@Dgw。它包含一个完整的句子,提到了链接到的库的名称,在这个问题的情况下,库的名称是答案的基本部分。如果链接失效,任何人都可以搜索它。
        猜你喜欢
        • 2016-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 2010-09-29
        • 2014-01-10
        • 1970-01-01
        相关资源
        最近更新 更多