我希望能够在Python中高效地解析大型HTML文档。我知道Liza Daly's fastiter和similar concept in the Python's own cElementTree。但是,这两种方法都不能处理损坏XML,HTML读取这些XML也是如此。此外,文档可能包含其他损坏的XML。
类似地,我知道像this这样的答案,它建议根本不使用任何形式的迭代解析,事实上,这就是我正在使用的。但是,我正在尝试优化我的程序中最大的瓶颈,即文档的解析。
此外,我使用用于lxml解析器的SAX风格的目标处理程序做了一些实验-我不确定发生了什么,但它直接导致Python停止工作!不仅抛出异常,还弹出"python.exe已停止工作“消息。我不知道这里发生了什么,但我甚至不确定这种方法是否真的比标准解析器更好,因为我在Internet上看到的关于它的东西很少。
因此,我的问题是:有没有类似iterparse的东西,可以让我快速有效地解析文档,当文档不是格式良好的XML (IE.是否可以从格式错误的XML中恢复)?
发布于 2016-03-20 09:55:49
我会用这个。
它比lxml更快,并且可以像这样处理损坏的html。
from ehp import *
doc = '''<html>
<body>
<p> cool </html></body>'''
html = Html()
dom = html.feed(doc)
print dom
它根据最可能的HTML结构构建一个AST。然后你就可以在AST上工作了。
https://stackoverflow.com/questions/21365054
复制相似问题