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.
- Aspose.HTML Python API proporciona aspose.html.saving espacio de nombres con las clases SaveOptions y ResourceHandlingOptions que le permiten configurar opciones para guardar operaciones.
- Aspose.HTML for Python via .NET proporciona aspose.html.saving.resourcehandlers espacio de nombres que contiene las clases ResourceHandler y FileSystemResourceHandler responsables de manejar los recursos.
Tenga en cuenta que Aspose.HTML for Python via .NET ofrece dos enfoques diferentes para crear los archivos de salida:
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.
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:
La propiedad java_script determina cómo se administran los recursos de JavaScript. Podría guardarse como un archivo vinculado separado, incrustarse en un archivo HTML o incluso ignorarse. El valor predeterminado es
ResourceHandling.SAVE
.La propiedad default establece el método de manejo predeterminado para todos los recursos. El valor predeterminado es
ResourceHandling.SAVE
.La propiedad resource_url_restriction define las restricciones de URL para recursos como CSS, JavaScript e imágenes. El valor predeterminado es
UrlRestriction.SAME_HOST
, que restringe los recursos a aquellos alojados en el mismo dominio que el documento.La propiedad page_url_restriction especifica restricciones de URL para las páginas. El valor predeterminado es
UrlRestriction.ROOT_AND_SUB_FOLDERS
, lo que significa que solo se manejarán las páginas dentro del directorio raíz y sus subcarpetas.La propiedad max_handling_depth controla la profundidad máxima de manejo de la página. Una profundidad de 1 significa que solo se manejarán las páginas a las que se hace referencia directamente desde el documento guardado. Establecer esta propiedad en -1 manejará todas las páginas. El valor predeterminado es 0, lo que significa que sólo se procesará el documento en sí.
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!