Сохранить HTML-документа на Python

Как сохранить HTML на Python

В этой статье представлено подробное руководство о том, как сохранить HTML-документ с помощью Aspose.HTML for Python via .NET API. После работы с HTML-документами вы можете сохранить изменения одним из методов HTMLDocument.save(). Существуют способы сохранить документ в файл или URL-адрес.

В этой статье будет рассмотрено использование классов SaveOptions и ResourceHandler.

Сохранить HTML

После внесения изменений в HTML-документ вы можете сохранить его. Вы можете сделать это, используя один из методов save(), предоставляемых классом HTMLDocument. Вот простой пример Python для сохранения HTML-файла:

 1# Save HTML to a file using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare an output path for saving the document
 7output_dir = "output/"
 8if not os.path.exists(output_dir):
 9    os.makedirs(output_dir)
10
11document_path = os.path.join(output_dir, "save-html-document.html")
12
13# Initialize an empty HTML document
14with ah.HTMLDocument() as document:
15    # Create a text node and add it to the document
16    text = document.create_text_node("Hello, World!")
17    document.body.append_child(text)
18
19    # Save HTML to a file
20    document.save(document_path)

В приведенном выше примере мы используем конструктор HTMLDocument() для инициализации пустого HTML-документа. Метод create_text_node(data) класса HTMLDocument создает текстовый узел по заданной строке. Когда вы вызываете document.save(document_path), метод записывает HTML-содержимое объекта document в файл, указанный document_path.

Приведенный выше пример довольно прост. Однако в реальных приложениях часто требуется дополнительный контроль над процессом сохранения. В следующих нескольких разделах описывается, как использовать параметры обработки ресурсов или сохранять документ в различных форматах.

SaveOptions и ResourceHandlingOptions

SaveOptions – это базовый класс, который позволяет указывать дополнительные параметры сохранения операций и помогает управлять связанными ресурсами. Свойство resource_handling_options класса SaveOptions используется для настройки обработки ресурсов. Класс ResourceHandlingOptions определяет параметры управления ресурсами, связанными с HTML-документом. Он предоставляет несколько свойств для управления тем, как обрабатываются различные типы ресурсов во время сохранения или обработки документа:

Сохранить HTML в файл

В следующем фрагменте кода Python показано, как использовать свойство resource_handling_options класса SaveOptions для управления связанными с вашими файлами документа.

 1# Save HTML with a linked resources using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare an output path for the document
 8output_dir = "output"
 9if not os.path.exists(output_dir):
10    os.makedirs(output_dir)
11
12document_path = os.path.join(output_dir, "save-with-linked-file.html")
13
14# Prepare a simple HTML file with a linked document
15with open(document_path, "w") as file:
16    file.write("<p>Hello, World!</p>" +
17               "<a href='linked.html'>linked file</a>")
18
19# Prepare a simple linked HTML file
20with open(os.path.join(output_dir, "linked.html"), "w") as file:
21    file.write("<p>Hello, linked file!</p>")
22
23# Load the "save-with-linked-file.html" into memory
24document = ah.HTMLDocument(document_path)
25
26# Create a save options instance
27options = sav.HTMLSaveOptions()
28
29# The following line with value '0' cuts off all other linked HTML-files while saving this instance
30# If you remove this line or change value to '1', the 'linked.html' file will be saved as well to the output folder
31options.resource_handling_options.max_handling_depth = 1
32
33# Save the document with the save options
34output_path = os.path.join(output_dir, "save-with-linked-file_out.html")
35document.save(output_path, options)

Если вам нужно сохранить HTML как изображение или документ с фиксированным макетом, например PDF, вы можете преобразовать документ в нужный вам формат. Дополнительную информацию см. в разделе Конвертер HTML.

Сохранить HTML в MHTML

В некоторых случаях вам необходимо сохранить веб-страницу в виде одного файла. Документ MHTML может быть удобен и полезен для этой цели, поскольку он представляет собой архив веб-страницы и хранит все внутри себя. HTMLSaveFormat Enumeration определяет формат, в котором сохраняется документ. Это могут быть форматы HTML, MHTML и Markdown. В приведенном ниже примере показано, как использовать метод save(path, save_format) для сохранения HTML в MHTML.

 1# Save HTML as MHTML using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Define the output directory and document path
 8output_dir = 'output'
 9document_path = os.path.join(output_dir, 'save-html-to-mhtml.mht')
10
11# Ensure the output directory exists
12os.makedirs(output_dir, exist_ok=True)
13
14# Prepare a simple HTML file with a linked document
15with open('document.html', 'w') as file:
16    file.write("<p>Hello, World!</p>"
17               "<a href='linked-file.html'>linked file</a>")
18
19# Prepare a simple linked HTML file
20with open('linked-file.html', 'w') as file:
21    file.write("<p>Hello, linked file!</p>")
22
23# Load the "document.html" into memory
24with ah.HTMLDocument('document.html') as document:
25    # Save the document to MHTML format
26    document.save(document_path, sav.HTMLSaveFormat.MHTML)

Сохраненный файл save-to-MTHML.mht хранит HTML файлы document.html и linked-file.html.

Сохранить HTML в Markdown

Markdown – это язык разметки с синтаксисом простого текста. Помимо примера HTML в MHTML, вы можете использовать HTMLSaveFormat для сохранения HTML в Markdown. Пожалуйста, взгляните на следующий пример Python:

 1# Save HTML as Markdown using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare a path to a source and output HTML file
 8data_dir = "data"
 9output_dir = "output/"
10if not os.path.exists(output_dir):
11    os.makedirs(output_dir)
12
13input_path = os.path.join(data_dir, "document.html")
14output_path = os.path.join(output_dir, "html-to-markdown.md")
15
16# Load the HTML document from a file
17document = ah.HTMLDocument(input_path)
18
19# Save the document to MHTML format
20document.save(output_path, sav.HTMLSaveFormat.MARKDOWN)

Сохранить SVG

Обычно SVG встроен в файл HTML для представления векторной графики, такой как изображения, значки, таблицы и т. д. Однако SVG также можно извлечь из веб-страницы и манипулировать им независимо, как и HTML-документ.

Поскольку и SVGDocument, и HTMLDocument соответствуют стандарту WHATWG DOM, их операции, такие как загрузка, чтение, редактирование, преобразование и сохранение, во многом схожи. Таким образом, любые примеры, демонстрирующие манипуляции с HTMLDocument, также могут быть применены к SVGDocument.

 1# Create and save SVG document using Python
 2
 3import os
 4import aspose.html.dom.svg as ahsvg
 5
 6# Define the output directory and document path
 7output_dir = 'output'
 8document_path = os.path.join(output_dir, 'save-html-to-svg.svg')
 9
10# Ensure the output directory exists
11os.makedirs(output_dir, exist_ok=True)
12
13# Prepare SVG code
14svg_code = """
15<svg xmlns='http://www.w3.org/2000/svg' height='400' width='300'>
16    <path stroke="#a06e84" stroke-width="3" fill="#74aeaf" d="  
17	M 150,50 L 150, 300
18	M 120,100 L 150,50 L 180, 100
19    M 110,150 L 150,90 L 190, 150
20	M 90,220 L 150,130 L 210, 220
21	M 70,300 L 150,190 L 230, 300
22    M 110,310 L 150,240 L 190, 310
23	" />
24</svg>
25"""
26
27# Initialize an SVG instance from the content string
28document = ahsvg.SVGDocument(svg_code, '.')
29
30# Save SVG
31document.save(document_path)

Для получения дополнительной информации об использовании Python API Aspose.SVG для обработки и рендеринга документов SVG обратитесь к документации Aspose.SVG for Python via .NET.

Загрузите библиотеку Aspose.HTML for Python via .NET, чтобы успешно, быстро и легко манипулировать вашими HTML-документами. Библиотека Python может создавать, изменять, извлекать данные, конвертировать и отображать HTML-документы без необходимости использования внешнего программного обеспечения. Она поддерживает популярные форматы файлов, такие как EPUB, MHTML, XML, SVG и Markdown, а также может выполнять рендеринг в форматах файлов PDF, DOCX, XPS и изображений.

Aspose.HTML предлагает бесплатный онлайн Kонвертер HTML для преобразования HTML-документов в различные популярные форматы. Просто загрузите HTML из файла или URL-адреса, выберите формат для преобразования, и все готово. Это быстро и совершенно бесплатно!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.