Guardar documento HTML en Python

Cómo guardar HTML en Python

Este artículo ofrece una guía detallada sobre cómo guardar un documento HTML usando Aspose.HTML for Python via .NET API. Después de trabajar con documentos HTML, puede guardar los cambios utilizando uno de los métodos HTMLDocument.save(). Existen métodos para guardar un documento en un archivo o URL.

Tenga en cuenta que Aspose.HTML for Python via .NET ofrece dos enfoques diferentes para crear los archivos de salida:

  1. Enfoque basado en HTML: esta forma implica producir archivos similares a HTML como salida. Utiliza la clase SaveOptions, que sirve como base para gestionar el proceso de guardado de recursos relacionados, como scripts, estilos e imágenes. La clase ResourceHandler es responsable de manejar estos recursos. Está desarrollado para guardar contenido HTML y recursos asociados en secuencias y proporciona métodos que le permiten controlar lo que se hará con el recurso.

  2. Enfoque de representación visual: este método se centra en crear una representación visual de HTML. Se basa en la clase RenderingOptions, que ofrece métodos especializados para definir el tamaño de página, márgenes, resolución, estilos de usuario y más.

Este artículo cubrirá el uso de las clases SaveOptions y ResourceHandler.

Guardar HTML

Una vez que haya completado los cambios en su documento HTML, es posible que desee guardarlo. Puede hacer esto usando uno de los métodos save() proporcionados por la clase HTMLDocument. Aquí hay un ejemplo simple de Python para guardar un archivo 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)

En el ejemplo anterior, utilizamos el constructor HTMLDocument() para inicializar un documento HTML vacío. El método create_text_node(data) de la clase HTMLDocument crea un nodo de texto dada la cadena especificada. Cuando llamas a document.save(document_path), el método escribe el contenido HTML del objeto document en el archivo especificado por document_path.

El ejemplo anterior es bastante simple. Sin embargo, en aplicaciones de la vida real, a menudo se necesita control adicional sobre el proceso de guardado. Las siguientes secciones describen cómo utilizar las opciones de manejo de recursos o guardar su documento en diferentes formatos.

SaveOptions y ResourceHandlingOptions

SaveOptions es una clase base que le permite especificar opciones adicionales para guardar operaciones y ayuda a administrar los recursos vinculados. La propiedad resource_handling_options de la clase SaveOptions se utiliza para la configuración del manejo de recursos. La clase ResourceHandlingOptions define opciones para administrar los recursos asociados con un documento HTML. Proporciona varias propiedades para controlar cómo se manejan los distintos tipos de recursos durante el guardado o procesamiento del documento:

Guardar HTML en un archivo

El siguiente fragmento de código de Python muestra cómo utilizar la propiedad resource_handling_options de la clase SaveOptions para administrar los archivos vinculados a sus documentos.

 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)

Si necesita guardar HTML como una imagen o un documento con un diseño fijo como PDF, puede convertir el documento al formato que necesite. Consulte la sección Convertidor HTML para obtener más información.

Guardar HTML en MHTML

En algunos casos, deberá guardar su página web como un solo archivo. El documento MHTML puede resultar útil y útil para este propósito, ya que es un archivo de página web y almacena todo dentro de sí mismo. La Enumeración HTMLSaveFormat especifica el formato en el que se guarda el documento; puede ser formato HTML, MHTML y Markdown. El siguiente ejemplo muestra cómo utilizar el método save(path, save_format) para guardar HTML en 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)

El archivo “save-to-MTHML.mht” guardado almacena HTML de los archivos “document.html” y “linked-file.html”.

Guardar HTML en Markdown

Markdown es un lenguaje de marcado con sintaxis de texto sin formato. Además del ejemplo de HTML a MHTML, puede utilizar HTMLSaveFormat para guardar HTML en Markdown. Eche un vistazo al siguiente ejemplo de 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)

Guardar SVG

Por lo general, SVG está incrustado en un archivo HTML para representar gráficos vectoriales como imágenes, iconos, tablas y más. Sin embargo, SVG también se puede extraer de una página web y manipular de forma independiente, de forma muy parecida a un documento HTML.

Dado que tanto SVGDocument como HTMLDocument se adhieren al estándar WHATWG DOM, sus operaciones (como cargar, leer, editar, convertir y guardar) son en gran medida similares. Por lo tanto, cualquier ejemplo que demuestre la manipulación con HTMLDocument también se puede aplicar a 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)

Para obtener más información sobre el uso de la API de Python de Aspose.SVG para el procesamiento y representación de documentos SVG, consulte la Documentación de Aspose.SVG for Python via .NET.

Descargue la biblioteca Aspose.HTML for Python via .NET para manipular con éxito, rapidez y facilidad sus documentos HTML. La biblioteca Python puede crear, modificar, extraer datos, convertir y renderizar documentos HTML sin necesidad de software externo. Admite formatos de archivos populares como EPUB, MHTML, XML, SVG y Markdown y puede renderizar en formatos de archivos PDF, DOCX, XPS e imágenes.

Aspose.HTML ofrece un Convertidor HTML en línea gratuito para convertir documentos HTML a una variedad de formatos populares. Simplemente cargue HTML desde un archivo o URL, elija el formato a convertir y listo. ¡Es rápido y completamente gratis!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.