Программное манипулирование файлами HTML является необходимым для создания динамических инструментов и редакторов веб‑контента. Aspose.HTML for Python via .NET предоставляет основанную на стандартах реализацию DOM, которая позволяет создавать документы с нуля, исследовать существующую разметку и переписывать её — без браузера и без регулярных выражений. Это руководство разбивает работу на три сфокусированных раздела: create, read и edit, каждый со своим исполняемым примером. К концу вы получите переиспользуемый рабочий процесс, который можно внедрить в любой конвейер контента на 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 в Python

Создать 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‑файлов в Python становится простым с помощью 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, которые без проблем интегрируются в любое приложение на Python.

FAQs

  • Как создать HTML‑файл в Python с помощью 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.

Читать далее