gpt4 book ai didi

python - 有没有办法用 lxml 解析 html,但用 minidom 操作它?

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:16 24 4
gpt4 key购买 nike

我有一个应用程序,我一直在使用 html5lib 自由地解析 html。我使用 minidom 接口(interface),因为我需要一个真正的 DOM API,而 ElementTree 不适合我正在做的事情。

我是这样操作的:

parser = html5lib.XHTMLParser(tree=html5lib.treebuilders.getTreeBuilder('dom'))
parser.parse(html)

然而,解析大文件正在成为性能瓶颈,lxml 解析比 html5lib 快 80 倍左右(我对其进行了基准测试)。

如何使用 lxml 或类似的快速 bad-html-tolerant 库进行解析,并使用与 DOM 兼容的 API 进行操作?

最佳答案

认为我找到了解决方案:

from xml.dom.pulldom import SAX2DOM
import lxml.sax
def parse_lxml_dom(html):
tree = lxml.html.document_fromstring(html)
handler = SAX2DOM()
lxml.sax.saxify(tree, handler)
return handler.document

然而,这只比 html5lib 快 7 倍左右。 saxify 调用需要相当长的时间。

关于python - 有没有办法用 lxml 解析 html,但用 minidom 操作它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com