Hoe HTML te parseren in Python
Aspose.HTML FOSS voor Python parseert markup met het standaard boomconstructie-algoritme: HTMLDocument.parse() voor volledige pagina’s, HTMLDocument.parse_fragment() voor fragmenten, en getypeerde elementklassen (HTMLElement en zijn subklassen) in het resultaat. Deze gids behandelt de parseringsingangen en verifieert de output via de DOM, met pip voor installatie.
Stapsgewijze gids
Stap 1: Installeer het pakket
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Stap 2: Importeer vereiste klassen
from aspose_html.html_document import HTMLDocument
from aspose_html.dom import DocumentStap 3: Kies het juiste parseringsingangspunt
HTMLDocument.parse() voert volledige documentboomconstructie uit met standaard foutherstel; HTMLDocument.parse_fragment() past het fragmentalgoritme toe voor gedeeltelijke markup; HTMLDocument.load() leest van een bron. Geparseerde elementen komen getypeerd aan — een <a> is een HTMLAnchorElement, een <input> een HTMLInputElement.
Stap 4: Verifieer de output via de DOM
Het geparseerde resultaat is een normale DOM-boom — dezelfde zoek- en attribuut-API’s zijn van toepassing. Het programmatisch opbouwen van de equivalente structuur toont het gedeelde oppervlak:
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())Stap 5: Ga door met stijlen of structuur
Koppel stylesheets en lees berekende stijlen, of gebruik Element invoeghelpers (insert_adjacent_html(), insert_adjacent_text()) voor gelokaliseerde bewerkingen — de parse-output voedt elke andere laag.
Veelvoorkomende problemen en oplossingen
Gedeeltelijke markup krijgt html- en body-omslagen. parse() past volledige-documentregels toe; gebruik parse_fragment() voor fragmenten.
Misvormde markup wordt geparseerd zonder fouten. Dat is standaardgedrag — boomconstructie definieert herstel voor elk foutgeval in plaats van een fout te genereren.
Tabelinhoud verschijnt buiten de tabel. Foster parenting van verkeerd geplaatste tabelinhoud is onderdeel van het algoritme; corrigeer de bron-nesting.
Veelgestelde vragen
Zijn geparseerde elementen getypeerd?
Ja — parsing produceert de HTMLElement hiërarchie: formulierbesturingselementen (HTMLFormElement, HTMLInputElement), ingesloten inhoud (HTMLImageElement, HTMLCanvasElement), navigatie (HTMLAnchorElement), en meer.
Kan ik de parse-pijplijn op een lager niveau aansturen?
Ja — de Tokenizer en TreeBuilder zijn openbaar, met parse_html() als de eenmalige wrapper.
Voert parsing scripts uit?
Nee. Script-evaluatie is expliciet en gescheiden via JSContext.