/ / Има ли начин да се анализира HTML с lxml, но да се манипулира с minidom? - python, html, dom, parsing, lxml

Има ли начин да се анализира html с lxml, но да се манипулира с minidom? - python, html, dom, parsing, lxml

Имам приложение, в което използвам html5lib, за да разграничавам html.

Ето как правя това:

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

Разделянето на огромни файлове обаче се превръща в пречка за изпълнение, а разборът на lxml е около 80 пъти по-бърз от html5lib (аз го сравнявам).

Как да анализирам с lxml или подобна бърза библиотека с лоша html-толерантност и да манипулирам с DOM-съвместим API?

Отговори:

4 за отговор № 1

Мисля, че намерих решение:

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

Това обаче е само около 7 пъти по-бързо от html5lib. Саксифициращият разговор отнема доста време.