Aspose.HTML FOSS for Python یک کتابخانهٔ رایگان و متنباز برای کار با اسناد HTML در برنامههای Python است. آن را با یک فرمان git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git نصب کنید و شروع به تجزیهٔ نشانهگذاری به یک مدل شیء سند، ساخت و اصلاح درختهای عنصر، پیوستن به سبکنامههای CSS، حل استایلهای محاسبهشده، و کار با URLها و رمزگذاریهای کاراکتر کنید — همه اینها در Python خالص و بدون وابستگی به مرورگر.
کتابخانه یک API مبتنی بر استانداردها را که حول HTMLDocument، Document، Element و CSSStyleSheet ساخته شده است، در اختیار میگذارد. با HTMLDocument.parse() نشانهگذاری را تجزیه کنید، گرهها را با Document.create_element() و append_child() ایجاد و وصل کنید، عناصر را با get_element_by_id() پیدا کنید، آنها را از طریق CSSStyleSheet.replace_sync() و اعلان style در سطح عنصر استایل دهید، و نتیجه را با Element.get_computed_style() بخوانید. بلوکهای ساختاری سطح پایین — HTML Tokenizer، TreeBuilder، URL و URLSearchParams به سبک WHATWG، و تشخیصگر جریان بایت detect_encoding() — زمانی که به کنترل مستقیم نیاز دارید در دسترس هستند.
Aspose.HTML FOSS تحت مجوز MIT منتشر شده و بهصورت خالص Python پیادهسازی شده است و به Python 3.10 یا بالاتر نیاز دارد. این کتابخانه بهطور یکسان بر روی ویندوز، لینوکس و macOS اجرا میشود — شامل اجراکنندگان CI، کانتینرهای Docker و محیطهای بدون سرور. برای مجموعه محصولات سازمانی، به Aspose.HTML — Enterprise Product Family مراجعه کنید.
HTMLDocument.parse() یا قطعات را با HTMLDocument.parse_fragment() تجزیه کنیدDocument.create_element() و append_child() بسازیدDocument.get_element_by_id() پیدا کنید و ویژگیهای نشانهگذاری را از طریق Element.get_attribute() بخوانیدElement.set_attribute() تنظیم کنید و متن را از طریق Node.text_content اختصاص دهیدserialise() به نشانهگذاری بازگردانیدCSSStyleSheet.replace_sync() تجزیه کنید و آن را از طریق Document.attach_style_sheet() پیوست کنیدstyle عنصر با CSSStyleDeclaration.set_property() تنظیم کنیدElement.get_computed_style() حل کنیدCSSStyleDeclaration.get_property_value() بخوانیدTokenizer.tokenize() یا Tokenizer.tokenize_fragment() راهاندازی کنیدTreeBuilder.run() اجرا کنیدparse_html() تجزیه کنیدURL.parse() و URL.can_parse() تجزیه و اعتبارسنجی کنیدURLSearchParams بخوانید و ویرایش کنید — append(), get(), has(), delete()detect_encoding() شناسایی کنیدget_canonical_name() نرمالسازی کنیدیک سند ایجاد کنید، یک stylesheet الصاق کنید، و سبک محاسبهشده را بخوانید — انتخابگر ID بر قانون کلاس برتری دارد:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
اعلانهای درونخطی نسبت به قواعد stylesheet نویسنده خاصیت بالاتری دارند:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("div { color: red }")
doc.attach_style_sheet(sheet)
inline = el.style
inline.set_property("color", "blue")
print(el.get_computed_style().get_property_value("color"))
کدگذاری یک جریان بایت خام را (شامل BOM) تشخیص داده و متن رمزگشاییشده را دریافت کنید:
from aspose_html.encoding.detection import detect_encoding
result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)
مجوز MIT — استفاده تجاری، تغییر و توزیع مجدد همه مجاز هستند؛ تنها شرط این است که اطلاعیه حق تکثیر را در کپیهای قابل توجه حفظ کنید.
Python 3.10 یا بعداً. با git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git نصب کنید — پیادهسازی کاملاً Python است و هیچ وابستگی بومی ندارد.
از HTMLDocument.parse() برای صفحات کامل یا HTMLDocument.parse_fragment() برای نشانهگذاری جزئی استفاده کنید؛ Document کارخانهای برای ساخت درختها بهصورت برنامهنویسی است.
بله — مقادیر محاسبهشده بر اساس اختصاصپذیری سلکتور عمل میکنند، اعلانهای درونخطی نسبت به قواعد نویسنده برتری دارند، قواعد نویسنده !important نسبت به اعلانهای درونخطی غیر مهم برتری دارند، و وراثت از والد به فرزند جریان دارد.
نه. نسخهٔ فعلی بر تجزیه، دستکاری DOM، محاسبهٔ سبک CSS، ساختارهای چیدمان، URLها و رمزگذاریها متمرکز است — هیچ تبدیل فرمت یا رندر تصویر/PDF نیست.
نه. تجزیه هرگز اسکریپتها را اجرا نمیکند؛ ارزیابی صریح و به-صورت opt-in از طریق JSContext با بارگذاری ماژول که توسط ModuleRegistry و ModuleLoadPolicy کنترل میشود.