在 Python 中解析 HTML [关闭]
Posted
技术标签:
【中文标题】在 Python 中解析 HTML [关闭]【英文标题】:Parsing HTML in Python [closed] 【发布时间】: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
.
【参考方案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。它包含一个完整的句子,提到了链接到的库的名称,在这个问题的情况下,库的名称是答案的基本部分。如果链接失效,任何人都可以搜索它。以上是关于在 Python 中解析 HTML [关闭]的主要内容,如果未能解决你的问题,请参考以下文章