1. المنتجات
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS لـ Python

حَلِّل HTML إلى DOM قائم على المعايير، طبّق CSS، واحسب الأنماط من Python — مجاني ومفتوح المصدر ونقي Python.

مكتبة Python مفتوحة المصدر لمعالجة HTML

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 أو أحدث. تعمل بنفس الطريقة على Windows و Linux و macOS — بما في ذلك مشغلات CI وحاويات Docker والبيئات الخالية من الخوادم. لعائلة منتجات المؤسسة، راجع Aspose.HTML — Enterprise Product Family.

HTML التحليل وتلاعب DOM

  • تحليل الصفحات الكاملة باستخدام 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()

من يستخدم معالجة DOM

  • خدمات الخلفية التي تنظف أو تعيد كتابة HTML المقدم من المستخدم قبل التخزين
  • خطوط أنابيب المحتوى التي تستخرج أو تعيد هيكلة شظايا الصفحات على نطاق واسع
  • مجموعات الاختبار التي تتحقق من بنية العلامات المولدة في CI

CSS أوراق الأنماط والأنماط المحسوبة

  • قم بتحليل نص ورقة الأنماط باستخدام CSSStyleSheet.replace_sync() وأرفقه عبر Document.attach_style_sheet()
  • عيّن التصريحات المضمنة من خلال خاصية العنصر style باستخدام CSSStyleDeclaration.set_property()
  • حل السلسلة — التحديد، القواعد المضمنة مقابل القواعد المكتوبة، والوراثة — باستخدام Element.get_computed_style()
  • اقرأ القيم المحلّلة مرة أخرى باستخدام CSSStyleDeclaration.get_property_value()

من يستخدم حساب الأنماط

  • أدوات البريد الإلكتروني والنشرات الإخبارية التي تتحقق من الأنماط الفعّالة قبل الإرسال
  • منقّيات HTML التي تحتاج إلى معرفة النمط الذي يُظهره العنصر فعليًا
  • المطورون الذين يصححون سلوك السلسلة والخصوصية خارج المتصفح

المحلل اللغوي وبناء الشجرة

  • تشغيل محول HTML مباشرةً باستخدام Tokenizer.tokenize() أو Tokenizer.tokenize_fragment()
  • تشغيل بناء شجرة مستند إلى المعايير باستخدام TreeBuilder.run()
  • تحليل العلامات مباشرةً إلى شجرة باستخدام الدالة parse_html()

من يستخدم التحليل منخفض المستوى

  • أدوات الفحص والتحليل التي تفحص تدفقات الرموز بدلاً من الأشجار المكتملة
  • الأدوات التي تحتاج إلى معالجة أخطاء مخصصة أثناء استعادة العلامات المشوهة
  • المشاريع التعليمية التي تدرس كيفية عمل التحليل HTML القائم على المعايير

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

  • تحليل والتحقق من صحة عناوين URL باستخدام URL.parse() و URL.can_parse()
  • قراءة وتعديل سلاسل الاستعلام باستخدام URLSearchParams — append(), get(), has(), delete()
  • اكتشاف ترميزات تدفق البايت (BOM وتحديد المحتوى) باستخدام detect_encoding()
  • تطبيع تسميات الترميز إلى أسماء قانونية باستخدام get_canonical_name()

من يستخدم أدوات URL والترميز

  • الزاحفون وآليات الجلب التي يجب أن تحل وتزيل التكرار في عناوين URL بشكل موثوق
  • خطوط أنابيب الإدخال التي تتعامل مع مستندات قديمة ذات ترميزات مختلطة
  • الخدمات التي تقوم بتحليل أو إعادة كتابة معلمات الاستعلام على الخادم

إنشاء DOM وحل CSS Cascade

أنشئ مستندًا، أرفق ورقة أنماط، واقرأ النمط المحسوب — محدد الـ 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"))

الأنماط المضمنة تأخذ الأولوية

الإعلانات المضمنة تحمل أولوية أعلى من قواعد ورقة الأنماط الخاصة بالمؤلف:

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)

الأسئلة الشائعة

ما الترخيص الذي يستخدمه Aspose.HTML FOSS for Python؟

رخصة MIT — السماح بالاستخدام التجاري، والتعديل، وإعادة التوزيع جميعًا؛ الشرط الوحيد هو الحفاظ على إشعار حقوق النشر مع النسخ الجوهرية.

ما إصدارات Python المدعومة، وكيف أقوم بالتثبيت؟

Python 3.10 أو أحدث. قم بالتثبيت باستخدام git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — التنفيذ هو Python خالص بدون اعتماديات أصلية.

كيف أحلل HTML إلى مستند؟

استخدم HTMLDocument.parse() للصفحات الكاملة أو HTMLDocument.parse_fragment() للعلامات الجزئية؛ Document هو المصنع لبناء الأشجار برمجياً.

هل يتعامل تسلسل CSS مع specificity و !important بشكل صحيح؟

نعم — القيم المحسوبة تتبع خصوصية المحدد، التصريحات المضمنة تتفوق على قواعد المؤلف، قواعد المؤلف !important تتفوق على التصريحات المضمنة غير المهمة، والوراثة تتدفق من الأب إلى الطفل.

هل تقوم المكتبة بعرض الصفحات أم تحويلها إلى صيغ أخرى؟

لا. يركز الإصدار الحالي على التحليل، وتلاعب DOM، وحساب نمط CSS، وهياكل التخطيط، وعناوين URL، والترميزات — لا تحويل صيغ أو عرض الصور/PDF.

هل يتم تنفيذ JavaScript تلقائيًا أثناء التحليل؟

لا. لا يقوم التحليل بتشغيل النصوص البرمجية؛ التقييم صريح ويتطلب الموافقة من خلال JSContext مع تحميل الوحدة المتحكم به بواسطة ModuleRegistry و ModuleLoadPolicy.

  

الدعم وموارد التعلم

 العربية