Come analizzare HTML in Python

Come analizzare HTML in Python

Aspose.HTML FOSS per Python analizza il markup con l’algoritmo standard di costruzione dell’albero: HTMLDocument.parse() per pagine complete, HTMLDocument.parse_fragment() per frammenti, e classi di elementi tipizzati (HTMLElement e le sue sottoclassi) nel risultato. Questa guida copre i punti di ingresso del parsing e verifica l’output tramite il DOM, usando pip per l’installazione.

Guida passo-passo

Passo 1: Installa il pacchetto

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Passo 2: Importa le classi richieste

from aspose_html.html_document import HTMLDocument
from aspose_html.dom import Document

Passo 3: Scegli il punto di ingresso di parsing corretto

HTMLDocument.parse() esegue la costruzione dell’albero dell’intero documento con il recupero degli errori secondo gli standard; HTMLDocument.parse_fragment() applica l’algoritmo dei frammenti per markup parziali; HTMLDocument.load() legge da una sorgente. Gli elementi analizzati arrivano tipizzati — un <a> è un HTMLAnchorElement, un <input> è un HTMLInputElement.


Passaggio 4: Verifica l’output tramite il DOM

Il risultato analizzato è un normale albero DOM — le stesse API di ricerca e attributo si applicano. Costruire programmaticamente la struttura equivalente mostra la superficie condivisa:

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())

Passaggio 5: Continua con Stili o Struttura

Allega i fogli di stile e leggi gli stili calcolati, oppure usa gli helper di inserimento Element (insert_adjacent_html(), insert_adjacent_text()) per modifiche localizzate — l’output del parsing alimenta tutti gli altri livelli.

Problemi comuni e soluzioni

Il markup parziale ottiene i wrapper html e body. parse() applica le regole dell’intero documento; usa parse_fragment() per frammenti.

Il markup malformato viene analizzato senza errori. Questo è il comportamento previsto dagli standard — tree construction definisce il recupero per ogni caso di errore anziché sollevare.

Il contenuto della tabella appare al di fuori della sua tabella. Foster parenting del contenuto della tabella fuori posto è parte dell’algoritmo; correggi l’annidamento di origine.

Domande Frequenti

Gli elementi analizzati sono tipizzati?

Sì — l’analisi produce la gerarchia HTMLElement: controlli dei moduli (HTMLFormElement, HTMLInputElement), contenuto incorporato (HTMLImageElement, HTMLCanvasElement), navigazione (HTMLAnchorElement), e altro.

Posso controllare la pipeline di analisi a un livello più basso?

Sì — i Tokenizer e TreeBuilder sono pubblici, con parse_html() come wrapper a chiamata singola.

L’analisi esegue script?

No. La valutazione dello script è esplicita e separata tramite JSContext.

Vedi anche

 Italiano