Jak parsovat HTML v Python
Aspose.HTML FOSS pro Python parsuje značkování pomocí standardního algoritmu pro tvorbu stromu: HTMLDocument.parse() pro kompletní stránky, HTMLDocument.parse_fragment() pro úryvky a typované třídy prvků (HTMLElement a její podtřídy) ve výsledku. Tento průvodce pokrývá vstupní body parsování a ověřuje výstup pomocí DOM, s instalací pomocí pip.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Krok 2: Importujte požadované třídy
from aspose_html.html_document import HTMLDocument
from aspose_html.dom import DocumentKrok 3: Vyberte správný vstupní bod parsování
HTMLDocument.parse() provádí konstrukci stromu celého dokumentu s obnovou chyb podle standardů; HTMLDocument.parse_fragment() používá fragmentový algoritmus pro částečný markup; HTMLDocument.load() čte ze zdroje. Analyzované prvky přicházejí typované — <a> je HTMLAnchorElement, <input> je HTMLInputElement.
Krok 4: Ověřte výstup pomocí DOM
Výsledkem parsování je normální DOM strom — platí stejné API pro vyhledávání a atributy. Programatické vytvoření ekvivalentní struktury ukazuje sdílený povrch:
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "content")
doc.append_child(el)
print(doc.get_element_by_id("content").has_child_nodes())Krok 5: Pokračujte se styly nebo strukturou
Připojte styly a načtěte vypočtené styly, nebo použijte Element pomocníky pro vkládání (insert_adjacent_html(), insert_adjacent_text()) pro lokalizované úpravy — výstup parsování napájí každou další vrstvu.
Časté problémy a opravy
Částečný markup získává obálky html a body. parse() aplikuje pravidla celého dokumentu; použijte parse_fragment() pro úryvky.
Poškozený markup se parsuje bez chyb. To je chování podle standardů — konstrukce stromu definuje zotavení pro každý chybový případ místo vyvolání výjimky.
Obsah tabulky se objevuje mimo její tabulku. Foster parenting nesprávně umístěného obsahu tabulky je součástí algoritmu; opravte vnoření ve zdroji.
Často kladené otázky
Jsou parsované elementy typované?
Ano — parsování vytváří hierarchii HTMLElement: ovládací prvky formulářů (HTMLFormElement, HTMLInputElement), vložený obsah (HTMLImageElement, HTMLCanvasElement), navigaci (HTMLAnchorElement) a další.
Mohu řídit pipeline parsování na nižší úrovni?
Ano — Tokenizer a TreeBuilder jsou veřejné, přičemž parse_html() je jednorázový obal.
Spouští parsování skripty?
Ne. Vyhodnocování skriptu je explicitní a oddělené prostřednictvím JSContext.