Сохранить 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-файла:
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-документом. Он предоставляет несколько свойств для управления тем, как обрабатываются различные типы ресурсов во время сохранения или обработки документа:
Свойство 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 для управления связанными с вашими файлами документа.
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-адреса, выберите формат для преобразования, и все готово. Это быстро и совершенно бесплатно!