Программное манипулирование файлами 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.
