Сохранить HTML-документа на Python
Как сохранить HTML на Python
В этой статье представлено подробное руководство о том, как сохранить HTML-документ с помощью Aspose.HTML for Python via .NET API. После работы с HTML-документами вы можете сохранить изменения одним из методов HTMLDocument.save(). Существуют способы сохранить документ в файл или URL-адрес.
- Aspose.HTML Python API предоставляет пространство имен aspose.html.saving с классами SaveOptions и ResourceHandlingOptions, которые позволяют вам устанавливать параметры для операций сохранения.
- Aspose.HTML for Python via .NET предоставляет пространство имен aspose.html.saving.resourcehandlers, которое содержит классы ResourceHandler и FileSystemResourceHandler, отвечающие за обработку ресурсов.
В этой статье будет рассмотрено использование классов SaveOptions
и ResourceHandler
.
Сохранить HTML
После внесения изменений в HTML-документ вы можете сохранить его. Вы можете сделать это, используя один из методов save(), предоставляемых классом HTMLDocument. Вот простой пример Python для сохранения HTML-файла:
1import os
2from aspose.html import *
3
4# Prepare an output path for saving the document
5output_dir = "output/"
6if not os.path.exists(output_dir):
7 os.makedirs(output_dir)
8
9document_path = os.path.join(output_dir, "create-new-document.html")
10
11# Initialize an empty HTML document
12with HTMLDocument() as document:
13 # Create a text node and add it to the document
14 text = document.create_text_node("Hello, World!")
15 document.body.append_child(text)
16
17 # Save the document to a file
18 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-документом. Он предоставляет несколько свойств для управления тем, как обрабатываются различные типы ресурсов во время сохранения или обработки документа:
Свойство java_script определяет способ управления ресурсами JavaScript. Его можно сохранить как отдельный связанный файл, встроить в HTML-файл или даже игнорировать. Значение по умолчанию – ResourceHandling.SAVE.
Свойство default устанавливает метод обработки по умолчанию для всех ресурсов. Значение по умолчанию – ResourceHandling.SAVE.
Свойство resource_url_restriction определяет ограничения URL-адресов для таких ресурсов, как CSS, JavaScript и изображения. Значением по умолчанию является UrlRestriction.SAME_HOST, которое ограничивает ресурсы только теми, которые размещены в том же домене, что и документ.
Свойство page_url_restriction определяет ограничения URL-адресов для страниц. Значение по умолчанию – UrlRestriction.ROOT_AND_SUB_FOLDERS, что означает, что будут обрабатываться только страницы в корневом каталоге и его подпапках.
Свойство max_handling_length контролирует максимальную глубину обработки страницы. Глубина 1 означает, что будут обрабатываться только страницы, на которые есть прямые ссылки из сохраненного документа. Если для этого свойства установлено значение -1, будут обрабатываться все страницы. Значение по умолчанию – 0, что означает, что будет обрабатываться только сам документ.
Сохранить HTML в файл
В следующем фрагменте кода Python показано, как использовать свойство resource_handling_options класса SaveOptions для управления связанными с вашими файлами документа.
1import os
2from aspose.html import *
3from aspose.html.saving import *
4
5# Prepare an output path for the document
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10document_path = os.path.join(output_dir, "save-with-linked-file.html")
11
12# Prepare a simple HTML file with a linked document
13with open(document_path, "w") as file:
14 file.write("<p>Hello, World!</p>" +
15 "<a href="linked.html">linked file</a>")
16
17# Prepare a simple linked HTML file
18with open(os.path.join(output_dir, "linked.html"), "w") as file:
19 file.write("<p>Hello, linked file!</p>")
20
21# Load the "save-with-linked-file.html" into memory
22document = HTMLDocument(document_path)
23
24# Create a save options instance
25options = HTMLSaveOptions()
26
27# The following line with value "0" cuts off all other linked HTML files while saving this instance
28# If you remove this line or change the value to "1", the "linked.html" file will be saved as well to the output folder
29options.resource_handling_options.max_handling_depth = 1
30
31# Save the document with the save options
32output_path = os.path.join(output_dir, "save-with-linked-file_out.html")
33document.save(output_path, options)
Если вам нужно сохранить HTML как изображение или документ с фиксированным макетом, например PDF, вы можете преобразовать документ в нужный вам формат. Дополнительную информацию см. в разделе Конвертер HTML.
Сохранить HTML в MHTML
В некоторых случаях вам необходимо сохранить веб-страницу в виде одного файла. Документ MHTML может быть удобен и полезен для этой цели, поскольку он представляет собой архив веб-страницы и хранит все внутри себя.
HTMLSaveFormat Enumeration определяет формат, в котором сохраняется документ. Это могут быть форматы HTML, MHTML и Markdown. В приведенном ниже примере показано, как использовать метод save(path, save_format)
для сохранения HTML в MHTML.
1import os
2from aspose.html import *
3from aspose.html.saving import *
4
5# Define the output directory and document path
6output_dir = "output/"
7document_path = os.path.join(output_dir, "save-to-MHTML.mht")
8
9# Ensure the output directory exists
10os.makedirs(output_dir, exist_ok=True)
11
12# Prepare a simple HTML file with a linked document
13with open("document.html", "w") as file:
14 file.write("<p>Hello, World! I save HTML to MHTML.</p>"
15 "<a href="linked-file.html">linked file</a>")
16
17# Prepare a simple linked HTML file
18with open("linked-file.html", "w") as file:
19 file.write("<p>Hello, linked file!</p>")
20
21# Load the "document.html" into memory
22with HTMLDocument("document.html") as document:
23 # Save the document to MHTML format
24 document.save(document_path, HTMLSaveFormat.MHTML)
Сохраненный файл save-to-MTHML.mht хранит HTML файлы document.html и linked-file.html.
Сохранить HTML в Markdown
Markdown – это язык разметки с синтаксисом простого текста. Помимо примера HTML в MHTML, вы можете использовать HTMLSaveFormat для сохранения HTML в Markdown. Пожалуйста, взгляните на следующий пример Python:
1import os
2from aspose.html import *
3from aspose.html.saving import *
4
5# Prepare a path to a source and output HTML file
6data_dir = "data"
7output_dir = "output/"
8if not os.path.exists(output_dir):
9 os.makedirs(output_dir)
10
11input_path = os.path.join(data_dir, "document.html")
12output_path = os.path.join(output_dir, "html-to-markdown.md")
13
14# Load the HTML document from a file
15document = HTMLDocument(input_path)
16
17# Save the document to MHTML format
18document.save(output_path, HTMLSaveFormat.MARKDOWN)
Сохранить SVG
Обычно SVG встроен в файл HTML для представления векторной графики, такой как изображения, значки, таблицы и т. д. Однако SVG также можно извлечь из веб-страницы и манипулировать им независимо, как и HTML-документ.
Поскольку и SVGDocument, и HTMLDocument соответствуют стандарту WHATWG DOM, их операции, такие как загрузка, чтение, редактирование, преобразование и сохранение, во многом схожи. Таким образом, любые примеры, демонстрирующие манипуляции с HTMLDocument, также могут быть применены к SVGDocument.
1import os
2from aspose.html import *
3from aspose.html.dom.svg import *
4
5# Define the output directory and document path
6output_dir = "output/"
7document_path = os.path.join(output_dir, "save-to.svg")
8
9# Ensure the output directory exists
10os.makedirs(output_dir, exist_ok=True)
11
12# Prepare SVG code
13svg_code = """
14<svg xmlns="http://www.w3.org/2000/svg" height="400" width="300">
15 <path stroke="#a06e84" stroke-width="3" fill="#74aeaf" d="
16 M 150,50 L 150, 300
17 M 120,100 L 150,50 L 180, 100
18 M 110,150 L 150,90 L 190, 150
19 M 90,220 L 150,130 L 210, 220
20 M 70,300 L 150,190 L 230, 300
21 M 110,310 L 150,240 L 190, 310
22 " />
23</svg>
24"""
25
26# Initialize an SVG instance from the content string
27document = SVGDocument(svg_code, ".")
28
29# Save SVG
30document.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-адреса, выберите формат для преобразования, и все готово. Это быстро и совершенно бесплатно!