在Python中有效解析XML/HTML破裂



我希望能够在Python中有效解析大型HTML文档。我知道丽莎·戴利(Liza Daly)的快速仪和Python自己的Celementtree中的类似概念。但是,这两个都没有处理损坏的XML,html读起来为良好。此外,该文档可能包含其他损坏的XML。

同样,我知道这样的答案,建议根本不使用任何形式的iterparse,这实际上是我使用的。但是,我试图优化经过计划中最大的瓶颈,即文档的解析。

此外,我使用sax式目标处理程序进行LXML解析器进行了一些实验 - 我不确定发生了什么,但这会导致Python停止工作!不仅会抛出一个例外,而且" python.exe已经停止工作"消息弹出窗口。我不知道这里发生了什么,但是我什至不确定这种方法实际上是否比标准解析器更好,因为我在互联网上几乎看不到它。

因此,我的问题是:是否有与iterparse相似的东西,允许我快速有效地通过文档解析,当文档形成XML时,这不会使SNIT适合(即。从形成不佳的XML)?

我会使用这个。

https://github.com/iogf/ehp

它比LXML快,并且处理破损的HTML。

from ehp import *
doc = '''<html>
<body>
<p> cool </html></body>'''
html = Html()
dom = html.feed(doc)
print dom

它根据可能的HTML结构构建AST。然后,您可以在AST上工作。

最新更新