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 in Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare the output path
 7output_dir = "output"
 8os.makedirs(output_dir, exist_ok=True)
 9
10document_path = os.path.join(output_dir, "save-html-document.html")
11
12# Create an empty HTML document
13with ah.HTMLDocument() as document:
14    # Create a text node and add it to the document
15    text = document.create_text_node("Hello, World!")
16    document.body.append_child(text)
17
18    # Save the HTML document
19    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 linked resources in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare output paths
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10
11document_path = os.path.join(output_dir, "save-with-linked-file.html")
12
13# Create an HTML file with a linked page
14with open(document_path, "w", encoding="utf-8") as file:
15    file.write("<p>Hello, World!</p><a href='linked.html'>linked file</a>")
16
17# Create the linked HTML file
18with open(os.path.join(output_dir, "linked.html"), "w", encoding="utf-8") as file:
19    file.write("<p>Hello, linked file!</p>")
20
21# Load and save the HTML document with directly linked pages
22output_path = os.path.join(output_dir, "save-with-linked-file_out.html")
23with ah.HTMLDocument(document_path) as document:
24    options = sav.HTMLSaveOptions()
25    options.resource_handling_options.max_handling_depth = 1
26    document.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 in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare the output path
 8output_dir = "output"
 9document_path = os.path.join(output_dir, "save-html-to-mhtml.mht")
10os.makedirs(output_dir, exist_ok=True)
11
12# Create an HTML file with a linked page
13with open("document.html", "w", encoding="utf-8") as file:
14    file.write("<p>Hello, World!</p><a href='linked-file.html'>linked file</a>")
15
16# Create the linked HTML file
17with open("linked-file.html", "w", encoding="utf-8") as file:
18    file.write("<p>Hello, linked file!</p>")
19
20# Load HTML and save it as MHTML
21with ah.HTMLDocument("document.html") as document:
22    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 in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare input and output paths
 8data_dir = "data"
 9output_dir = "output"
10os.makedirs(output_dir, exist_ok=True)
11
12input_path = os.path.join(data_dir, "document.html")
13output_path = os.path.join(output_dir, "html-to-markdown.md")
14
15# Load HTML and save it as Markdown
16with ah.HTMLDocument(input_path) as document:
17    document.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 an SVG file in Python
 2
 3import os
 4import aspose.html.dom.svg as ahsvg
 5
 6# Prepare the output path
 7output_dir = "output"
 8document_path = os.path.join(output_dir, "save-html-to-svg.svg")
 9os.makedirs(output_dir, exist_ok=True)
10
11# Prepare SVG code
12svg_code = """
13<svg xmlns='http://www.w3.org/2000/svg' height='400' width='300'>
14    <path stroke="#a06e84" stroke-width="3" fill="#74aeaf" d="  
15	M 150,50 L 150, 300
16	M 120,100 L 150,50 L 180, 100
17    M 110,150 L 150,90 L 190, 150
18	M 90,220 L 150,130 L 210, 220
19	M 70,300 L 150,190 L 230, 300
20    M 110,310 L 150,240 L 190, 310
21	" />
22</svg>
23"""
24
25# Create and save the SVG document
26with ahsvg.SVGDocument(svg_code, ".") as document:
27    document.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!