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:
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:
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.
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!