چگونه از Tokenizer HTML در Python استفاده کنیم

چگونه از Tokenizer HTML در Python استفاده کنیم

توکنایزر در Aspose.HTML FOSS برای Python نشانه‌گذاری را به یک جریان از توکن‌های تعریف‌شده توسط استانداردها تبدیل می‌کند — برای ابزارهای lint، پیش‌پردازش‌های پاک‌کننده و هر ابزاری که نشانه‌گذاری را زیر سطح درخت بررسی می‌کند، مفید است. این راهنما نقاط ورودی توکن‌سازی، واژگان توکن و حالت‌ها را پوشش می‌دهد و برای نصب از pip استفاده می‌کند.

راهنمای گام به گام

گام ۱: نصب بسته

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

گام ۲: وارد کردن کلاس‌های مورد نیاز

from aspose_html.tokenizer import Tokenizer, TokenizerState

گام ۳: توکن‌سازی نشانه‌گذاری

Tokenizer.tokenize() ورودی کامل را پردازش می‌کند؛ Tokenizer.tokenize_fragment() قوانین تکه‌ای را اعمال می‌کند. جریان شامل توکن‌های نوعی است: StartTagToken و EndTagToken (با ویژگی‌ها)، CharacterToken برای متن، CommentToken، DoctypeToken، و یک EofToken نهایی.


مرحله ۴: کنترل وضعیت اولیه

TokenizerState ماشین حالت‌های مشخصه را بازتاب می‌دهد. برای ورودی حساس به زمینه — محتوایی که در داخل <script> یا <style> ظاهر می‌شود — قبل از توکنیزه کردن، وضعیت اولیهٔ مطابقت‌دار را با Tokenizer.set_state() تنظیم کنید.


مرحله ۵: حل ارجاعات کاراکتری

ارجاعات کاراکتری نام‌دار و عددی از طریق resolve_named_char_ref()، resolve_numeric_char_ref() و find_named_char_ref_match() حل می‌شوند — به‌پشتیبانی از جدول کامل ارجاع-نام‌دار.

مشکلات رایج و راه‌حل‌ها

محتواي اسکریپت یا استایل به عنوان markup توکن‌گذاری می‌شود. وضعیت اولیه برای این زمینه نادرست بود؛ آن را تنظیم کنید با set_state().

نهادها در خروجی به‌صورت حل‌نشده ظاهر می‌شوند. مصرف‌کنندگان متن خام باید حل‌کننده‌های مرجع کاراکتر را اجرا کنند؛ حل‌مسئله در این سطح به‌صورت صریح است.

خروجی Fragment با تجزیه کامل متفاوت است. قواعد توکن‌گذاری Fragment به‌صورت عمدی متفاوت هستند — استفاده کنید tokenize() برای اسناد کامل.

سوالات متداول

آیا می‌توانم توکن‌ها را بدون ساخت درخت مصرف کنم؟

بله — جریان توکن یک خروجی عمومی است، مستقل از ساختار درخت.

کدام انواع توکن وجود دارند؟

StartTagToken، EndTagToken، CharacterToken، CommentToken، DoctypeToken، و EofToken.

آیا حالت‌های توکن‌ساز استاندارد هستند؟

بله — TokenizerState ماشین حالت مشخصه را مدل می‌کند.

همچنین ببینید:

 فارسی