Як використовувати токенізатор HTML у Python

Як використовувати токенізатор HTML у Python

Токенізатор у Aspose.HTML FOSS для Python перетворює розмітку у потік токенів, визначених стандартами — корисний для лінтерів, попередніх проходів санітайзера та будь-якого інструменту, який аналізує розмітку нижче рівня дерева. Цей посібник охоплює точки входу токенізації, словник токенів та стани, використовуючи pip для встановлення.

Покроковий посібник

Крок 1: Встановіть пакет

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

Крок 2: Імпортуйте необхідні класи

from aspose_html.tokenizer import Tokenizer, TokenizerState

Крок 3: Токенізуйте розмітку

Tokenizer.tokenize() обробляє повний вхід; Tokenizer.tokenize_fragment() застосовує правила фрагментів. Потік містить типізовані токени: StartTagToken і EndTagToken (з атрибутами), CharacterToken для тексту, CommentToken, DoctypeToken і фінальний EofToken.


Крок 4: Керування початковим станом

TokenizerState відображає станову машину специфікації. Для контекстно-чутливого вводу — вмісту, який міг би з’явитися всередині <script> або <style> — встановіть відповідний початковий стан за допомогою Tokenizer.set_state() перед токенізацією.


Крок 5: Розв’язання символьних посилань

Іменовані та числові символьні посилання розв’язуються за допомогою resolve_named_char_ref(), resolve_numeric_char_ref() та find_named_char_ref_match() — підтримуються повною таблицею іменованих посилань.

Поширені проблеми та їх виправлення

Вміст скриптів або стилів токенізується як розмітка. Початковий стан був неправильний для контексту; встановіть його за допомогою set_state().

Сутності виглядають нерозв’язаними у виводі. Споживачі необробленого тексту повинні запускати розв’язувачі символьних посилань; розв’язання є явним на цьому рівні.

Вивід фрагмента відрізняється від повного розбору. Правила токенізації фрагмента навмисно відрізняються — використовуйте tokenize() для повних документів.

Часті запитання

Чи можу я споживати токени без побудови дерева?

Так — потік токенів є публічним виводом, незалежним від побудови дерева.

Які типи токенів існують?

StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, та EofToken.

Чи є стани токенізатора стандартними?

Так — TokenizerState моделює машину станів специфікації.

Дивіться також

 Українська