Jak používat tokenizér HTML v Python

Jak používat tokenizér HTML v Python

Tokenizér v Aspose.HTML FOSS pro Python převádí značkový kód na proud tokenů definovaných standardy— užitečné pro lintery, předprůchody sanitizéru a jakýkoli nástroj, který zkoumá značkový kód pod úrovní stromu. Tento průvodce pokrývá vstupní body tokenizace, slovník tokenů a stavy, s použitím pip pro instalaci.

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.tokenizer import Tokenizer, TokenizerState

Krok 3: Tokenizujte značkový kód

Tokenizer.tokenize() zpracovává celý vstup; Tokenizer.tokenize_fragment() používá pravidla fragmentů. Proud obsahuje typované tokeny: StartTagToken a EndTagToken (s atributy), CharacterToken pro text, CommentToken, DoctypeToken a konečný EofToken.


Krok 4: Ovládání počátečního stavu

TokenizerState odráží stavový stroj specifikace. Pro kontextově citlivý vstup — obsah, který by se objevil uvnitř <script> nebo <style> — nastavte odpovídající počáteční stav pomocí Tokenizer.set_state() před tokenizací.


Krok 5: Řešení znakových referencí

Pojmenované a číselné znakové reference se rozlišují pomocí resolve_named_char_ref(), resolve_numeric_char_ref() a find_named_char_ref_match() — podpořeno kompletní tabulkou pojmenovaných referencí.

Časté problémy a opravy

Obsah skriptu nebo stylu se tokenizuje jako značkování. Počáteční stav byl pro kontext nesprávný; nastavte jej pomocí set_state().

Entity se v výstupu objevují jako nevyřešené. Spotřebitelé surového textu musí spouštět řešiče znakových referencí; řešení je na této úrovni explicitní.

Výstup fragmentu se liší od úplného parsování. Pravidla tokenizace fragmentu se úmyslně liší — použijte tokenize() pro úplné dokumenty.

Často kladené otázky

Mohu spotřebovávat tokeny bez vytváření stromu?

Ano — tokenový tok je veřejný výstup, nezávislý na konstrukci stromu.

Jaké typy tokenů existují?

StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken a EofToken.

Jsou stavy tokenizéru standardní?

Ano — TokenizerState modeluje stavový automat specifikace.

Viz také:

 Čeština