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:

 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)

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.

 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)

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.

 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)

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:

 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)

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.

 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)

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.