مقدمة

Aspose.HTML FOSS لـ Python هي مكتبة مفتوحة المصدر جديدة للعمل مع مستندات HTML في Python. تقوم بتحليل العلامات إلى نموذج كائن وثيقة قائم على المعايير، وتتيح لك بناء وتعديل أشجار العناصر برمجيًا، وتُحلّ CSS — بما في ذلك التحديد، التصريحات المضمنة، والوراثة — إلى أنماط محسوبة يمكنك قراءتها من أي عنصر.

تستهدف المكتبة سيناريوهات الخلفية والأدوات حيث المتصفح غير متوفر أو غير مرغوب فيه: الخدمات التي تنظف HTML المخزّن، خطوط الأنابيب التي تعيد هيكلة قطع الصفحات، وحزم الاختبار التي تتحقق من العلامات المُولّدة. يتم تثبيتها من PyPI كـ aspose-html-foss، وهي مرخصة تحت MIT، ومُنفذة بلغة Python الصافية لـ Python 3.10 وما بعدها، لذا تتصرف بنفس الطريقة على أجهزة المطورين، عدّاءات CI، والخوادم.

بعيدًا عن نواة DOM وCSS، تُضمّن الحزمة كتل بناء عملية عادةً ما تحتاجها معالجة HTML على أي حال: محلل رموز HTML وباني شجرة يمكنك تشغيله مباشرة، فئات URL وURLSearchParams بنمط WHATWG، وكاشف ترميز تدفق البايت.


ما الذي يتضمنه

إنشاء وتعديل الـ DOM

طبقة الـ DOM مبنية حول Document، Element، وNode. أنشئ عناصر باستخدام Document.create_element()، واربطها معًا باستخدام append_child()، واضبط سمات العلامات باستخدام Element.set_attribute()، وابحث عن العقد مرة أخرى باستخدام Document.get_element_by_id(). يتم تحليل الصفحات الكاملة والقطع عبر HTMLDocument.parse() وHTMLDocument.parse_fragment().

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)

تطبيق أوراق الأنماط وقراءة الأنماط المحسوبة

CSSStyleSheet.replace_sync() يحلل نص ورقة الأنماط، Document.attach_style_sheet() يضعه موضع التنفيذ، وElement.get_computed_style() يحل السلسلة الهرمية. النتيجة تحترم خصوصية المحدد — هنا قاعدة الـ 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"))

الإعلانات المضمنة والسلسلة الهرمية

كل عنصر يكشف عن CSSStyleDeclaration حي عبر خاصية style. الإعلانات المضمنة التي تُضبط بـ set_property() تحمل خصوصية أعلى من قواعد ورقة الأنماط الخاصة بالمؤلف، وget_computed_style() يعكس ذلك:

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"))

المُحلل الرمزي ومُنشئ الشجرة

عندما تحتاج إلى مزيد من التحكم أكثر من شجرة جاهزة، تكون الطبقات السفلية عامة API. Tokenizer.tokenize() وTokenizer.tokenize_fragment() يُصدّران تدفق الرموز لقطعة من العلامات، TreeBuilder.run() يُجري بناء الشجرة وفق المعايير، وparse_html() الدالة تنتقل من العلامات إلى الشجرة في استدعاء واحد. هذه هي نفس المكوّنات التي يستخدمها مسار التحليل عالي المستوى.

عناوين URL وترميزات الأحرف

URL.parse() وURL.can_parse() يتعاملان مع تحليل وتحقق عناوين URL بنمط WHATWG، مع URLSearchParams (append()، get()، has()، delete()) لسلاسل الاستعلام. بالنسبة للبايتات الخام، detect_encoding() يكتشف الترميز — بما في ذلك علامات ترتيب البايت — ويعيد النص المفكك مع مستوى الثقة، بينما get_canonical_name() يُطبع تسميات الترميز إلى صيغة موحدة:

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)

بدء سريع

التثبيت من PyPI:

asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.

ثم قم بإنشاء مستند، صممه، واقرأ النتيجة المحسوبة:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet

doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)

sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)

style = el.get_computed_style()
print(style.get_property_value("color"))

المصدر المفتوح والترخيص

Aspose.HTML FOSS لـ Python مُصدر تحت رخصة MIT، لذا يُسمح بالاستخدام التجاري، والتعديل، وإعادة التوزيع. الشيفرة المصدرية متوفرة على GitHub والحزمة منشورة على PyPI كـ aspose-html-foss.


البدء

الموارد ذات الصلة