Jak parsovat HTML v Python

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 Document

Krok 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.

Viz také:

 Čeština