التعامل مع ملفات HTML برمجياً أمر أساسي لبناء أدوات ومحررات محتوى ويب ديناميكية. يوفر Aspose.HTML for Python via .NET تنفيذًا قائمًا على المعايير لـ DOM يتيح لك إنشاء المستندات من الصفر، وفحص العلامات الموجودة، وإعادة كتابتها — كل ذلك دون الحاجة إلى متصفح أو تعبيرات نمطية. يقسم هذا الدليل العمل إلى ثلاثة أقسام مركزة: إنشاء، قراءة، و تعديل، كل منها يحتوي على مثال قابل للتنفيذ. في النهاية ستحصل على سير عمل قابل لإعادة الاستخدام يمكنك دمجه في أي خط أنابيب محتوى يعتمد على Python.

قبل البدء: المتطلبات المسبقة والتثبيت

لمتابعة هذا البرنامج التعليمي تحتاج إلى:

  • Python 3.8 أو أحدث مثبت على جهاز التطوير الخاص بك.
  • نظام تشغيل 64‑بت (Windows أو Linux أو macOS) — الحزمة تتضمن ملفات تنفيذية أصلية لـ .NET.
  • ترخيص صالح لـ Aspose.HTML for Python via .NET (التراخيص المؤقتة متاحة).

قم بتثبيت SDK باستخدام pip:

pip install aspose-html-net

يمكنك أيضًا تنزيل أحدث الملفات الثنائية مباشرةً من صفحة التحميل. بعد التثبيت، استورد الأنواع التي تحتاجها:

from aspose.html import HTMLDocument
from aspose.html.saving import HTMLSaveOptions

إذا كان لديك ملف ترخيص، فقم بتطبيقه مرة واحدة عند بدء تشغيل التطبيق بحيث يكون الإخراج خالٍ من قيود التقييم:

from aspose.html import License

license = License()
license.set_license("Aspose.HTML.Python.lic")

مع جاهزية SDK، دعنا نتعامل مع العمليات الثلاث الأساسية.

بناءه خطوة بخطوة: إنشاء وقراءة وتعديل HTML في بايثون

إنشاء مستند HTML في Python

يحتوي مستند HTMLDocument الفارغ بالفعل على هيكل html و head و body، لذا يمكنك البدء في إلحاق العقد فورًا. يتم إنشاء العناصر باستخدام create_element()، وعقد النص باستخدام create_text_node()، ويتم إرفاق كليهما بالشجرة باستخدام append_child().

from aspose.html import HTMLDocument

# An empty document already has <html>, <head>, and <body>
document = HTMLDocument()
document.title = "Sample Document"

# <h1 id="mainHeader">Welcome to Aspose.HTML</h1>
header = document.create_element("h1")
header.set_attribute("id", "mainHeader")
header.append_child(document.create_text_node("Welcome to Aspose.HTML"))
document.body.append_child(header)

# <p>This document was generated programmatically.</p>
paragraph = document.create_element("p")
paragraph.text_content = "This document was generated programmatically."
document.body.append_child(paragraph)

document.save("created.html")

نظرًا لأن كل عقدة يتم إنشاؤها عبر المستند، فإن العلامة الناتجة تكون دائمًا مُشكّلة بشكل صحيح — لا توازن يدوي للوسوم ولا دمج سلاسل.

قراءة مستند HTML موجود باستخدام Python

مرّر مسار ملف إلى مُنشئ HTMLDocument وتقوم Aspose.HTML بتحليل الملف إلى شجرة DOM حية. من هناك يمكنك الاستعلام عنها بنفس الطريقة التي تستخدمها في المتصفح: حسب المعرف (id)، حسب اسم العلامة، أو باستخدام مُحدِّد CSS.

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
print("Title:", document.title)

# Look up a single element by its id
header = document.get_element_by_id("mainHeader")
if header is not None:
    print("Header:", header.text_content)

# Iterate over every paragraph in the document
paragraphs = document.get_elements_by_tag_name("p")
for index in range(paragraphs.length):
    print(f"Paragraph {index}:", paragraphs[index].text_content)

# CSS selectors work too
for link in document.query_selector_all("a[href]"):
    print("Link:", link.get_attribute("href"))

# Serialize the whole tree back to markup when you need the raw HTML
print(document.document_element.outer_html)

يمكنك أيضًا تحليل العلامات الموجودة بالفعل في الذاكرة عن طريق تمرير المحتوى بالإضافة إلى URI أساسي، وهو أمر مفيد عندما يأتي HTML من استجابة API:

content = "<html><body><p>Loaded from a string.</p></body></html>"
document = HTMLDocument(content, ".")

تحرير مستند HTML موجود في Python

التحرير هو مجرد تعديل في DOM: عيّن إلى text_content أو inner_html، غيّر السمات باستخدام set_attribute()، أدرج العقد باستخدام append_child()، واحذف العقد باستخدام remove_child(). احفظ النتيجة عندما تنتهي.

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
# 1. Update the document title
document.title = "Edited Document Title"

# 2. Replace the header text
header = document.get_element_by_id("mainHeader")
if header is not None:
    header.text_content = "Edited Header via Aspose.HTML"

# 3. Insert a highlighted notice block
notice = document.create_element("div")
notice.set_attribute("class", "highlight")
notice.inner_html = "<strong>Important notice:</strong> This div was inserted at runtime."
document.body.append_child(notice)

# 4. Remove the first paragraph
paragraphs = document.get_elements_by_tag_name("p")
if paragraphs.length > 0:
    obsolete = paragraphs[0]
    obsolete.parent_node.remove_child(obsolete)

document.save("edited.html")

هذه العمليات الثلاث تُركّب بشكل نظيف: إنشاء مرة واحدة، قراءة كلما احتجت إلى الفحص، وتعديل كلما تغير المحتوى.

ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسارات الملفات (created.html, edited.html, إلخ) لتطابق مواقع ملفاتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.

الخاتمة

إنشاء وقراءة وتحرير ملفات HTML في بايثون يصبح سهلًا مع Aspose.HTML for Python via .NET. كل عملية تتطابق مع تعبير DOM مألوف: بناء العقد باستخدام create_element()، واستعلامها باستخدام get_element_by_id() و query_selector_all()، وتعديلها عبر text_content و inner_html و set_attribute()، ثم حفظها باستخدام save(). تذكر أن تحصل على ترخيص مناسب للاستخدام في الإنتاج؛ تفاصيل الأسعار متوفرة على صفحة المنتج، ويمكن الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت. مع وجود SDK بين يديك، يمكنك الآن بناء أدوات قوية لمعالجة HTML تتكامل بسلاسة مع أي تطبيق مبني على بايثون.

الأسئلة المتكررة

  • كيف يمكنني إنشاء ملف HTML في بايثون باستخدام Aspose.HTML؟ إنشاء كائن HTMLDocument فارغ، بناء العقد باستخدام create_element() و create_text_node()، إرفاقها باستخدام append_child()، ثم استدعاء document.save("created.html"). المثال المذكور أعلاه يوضح التسلسل الكامل.

  • كيف يمكنني قراءة محتويات ملف HTML موجود؟ مرّر مسار الملف إلى مُنشئ HTMLDocument، ثم استعلم عن الـ DOM باستخدام get_element_by_id() أو get_elements_by_tag_name() أو query_selector_all(). القيم متاحة عبر text_content و inner_html و get_attribute().

  • كيف يمكنني تعديل مستند HTML وحفظ التغييرات؟ قم بتحميل المستند، عيّن إلى text_content أو inner_html، غيّر السمات باستخدام set_attribute()، أضف العقد باستخدام append_child()، واحذفها باستخدام remove_child(). ثم استدعِ document.save()، مع تمرير كائن HTMLSaveOptions اختياريًا.

  • أين يمكنني العثور على المزيد من الأمثلة والوثائق والدعم؟ توفر الوثائق الرسمية إرشادات مفصلة، وتُدرج مرجع API جميع الفئات والأعضاء، ويمكن الوصول إلى المجتمع عبر منتدى Aspose.HTML.

اقرأ المزيد