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, TokenizerStatePasul 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.