Cum să utilizați tokenizatorul HTML în Python

Cum să utilizați tokenizatorul HTML în Python

Tokenizer-ul din Aspose.HTML FOSS pentru Python convertește markup-ul într-un flux de tokenuri definite de standarde — util pentru linters, pre-pasaje de sanitizare și orice unealtă care inspectează markup-ul sub nivelul arborelui. Acest ghid acoperă punctele de intrare ale tokenizării, vocabularul tokenurilor și stările, utilizând pip pentru instalare.

Ghid pas cu pas

Pasul 1: Instalați pachetul

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

Pasul 2: Importați clasele necesare

from aspose_html.tokenizer import Tokenizer, TokenizerState

Pasul 3: Tokenizați markup-ul

Tokenizer.tokenize() procesează intrarea completă; Tokenizer.tokenize_fragment() aplică regulile de fragment. Fluxul conține tokenuri tipizate: StartTagToken și EndTagToken (cu atribute), CharacterToken pentru text, CommentToken, DoctypeToken și un EofToken final.


Pasul 4: Controlul stării inițiale

TokenizerState reflectă mașina de stare a specificației. Pentru intrare sensibilă la context — conținut care ar apărea în interiorul <script> sau <style> — setați starea inițială corespunzătoare cu Tokenizer.set_state() înainte de tokenizare.


Pasul 5: Rezolvarea referințelor de caractere

Referințele de caractere numite și numerice se rezolvă prin resolve_named_char_ref(), resolve_numeric_char_ref() și find_named_char_ref_match() — susținute de tabelul complet de referințe numite.

Probleme comune și remedii

Conținutul script sau stil se tokenizează ca markup. Starea inițială era greșită pentru context; seteaz-o cu set_state().

Entitățile apar nerezolvate în ieșire. Consumatorii de text brut trebuie să ruleze rezolvatoarele de referințe de caractere; rezolvarea este explicită la acest nivel.

Ieșirea fragmentului diferă de o analiză completă. Regulile de tokenizare a fragmentului diferă intenționat — folosește tokenize() pentru documente complete.

Întrebări frecvente

Pot consuma token-uri fără a construi un arbore?

Da — fluxul de token-uri este o ieșire publică, independent de construcția arborelui.

Ce tipuri de token-uri există?

StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, și EofToken.

Sunt stările tokenizer-ului cele standard?

Da — TokenizerState modelează mașina de stare a specificației.

Vezi și:

 Română