Cree un documento en Python – cree o cargue HTML, SVG, MHTML, EPUB
Este artículo ofrece una guía detallada sobre cómo crear un documento HTML usando Aspose.HTML for Python via .NET API. La API proporciona la clase HTMLDocument, que es la raíz de la jerarquía HTML y contiene todo el contenido. Esta clase tiene un conjunto de constructores que te permiten crear o cargar documentos HTML de diferentes maneras. Los documentos HTML se pueden crear desde cero como un documento vacío con una estructura HTML, a partir de una cadena, desde un flujo de memoria o cargarse desde un archivo o URL.
Documento HTML
El
HTMLDocument es un punto de partida para la biblioteca de Python Aspose.HTML. Puede cargar el documento HTML en el Modelo de objetos de documento (DOM) usando uno de los constructores HTMLDocument()
y luego leer mediante programación, modificar el árbol del documento, agregar y eliminar nodos, cambiar las propiedades del nodo en el documento tal y como se describe en las especificaciones oficiales.
La clase HTMLDocument
proporciona una representación en memoria de un HTML DOM que cumple totalmente con las especificaciones
W3C DOM y
WHATWG DOM. Si está familiarizado con los estándares WHATWG DOM,
WHATWG HTML y
JavaScript, usar Aspose.HTML for Python via .NET API será bastante cómodo y fácil.
Crear un documento HTML vacío
El siguiente fragmento de código de Python muestra el uso del constructor predeterminado HTMLDocument() para crear un documento HTML vacío y guardarlo en un archivo.
1import os
2from aspose.html import *
3
4# Setup an output directory and prepare a path to save the document
5output_dir = "output/"
6if not os.path.exists(output_dir):
7 os.makedirs(output_dir)
8
9save_path = os.path.join(output_dir, "document-empty.html")
10
11# Initialize an empty HTML document
12document = HTMLDocument()
13
14# Work with the document here...
15
16# Save the document to a file
17document.save(os.path.join(save_path))
Después de la creación, aparece el archivo document-empty.html con la estructura del documento inicial: el documento vacío incluye elementos como <html>
<head>
y <body>
. Una vez creado el objeto del documento, se puede completar posteriormente con elementos HTML.
Crear un nuevo documento HTML
Si desea crear un documento HTML mediante programación desde cero, utilice el constructor sin parámetros como se especifica en el siguiente fragmento de código:
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 nuevo documento, creamos un nodo de texto, dada la cadena especificada, usando el método
create_text_node() y lo agregamos al elemento <body>
usando el método
append_child().
Cómo editar un archivo HTML se describe en detalle en el artículo Editar documento HTML.
Más detalles sobre cómo guardar archivos HTML se encuentran en el artículo Guardar documento HTML.
Cargar HTML desde un archivo
Si necesita cargar un archivo HTML existente desde un archivo, trabajarlo y guardarlo, el siguiente fragmento de código le ayudará:
1import os
2from aspose.html import *
3
4# Setup directories and define paths
5output_dir = "output/"
6input_dir = "data/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10document_path = os.path.join(input_dir, "document.html")
11save_path = os.path.join(output_dir, "document-edited.html")
12
13# Initialize a document from a file
14document = HTMLDocument(document_path)
15
16# Work with the document
17
18# Save the document to disk
19document.save(os.path.join(save_path))
En el ejemplo anterior, el código Python configura directorios y rutas para leer un documento HTML desde el directorio “data” y guardar una versión editada en el directorio “output”. Inicializa el documento HTML a partir del archivo especificado, lo procesa y luego guarda el documento editado en la ruta de salida designada.
Cargar HTML desde una URL
Una de las funciones más utilizadas de Internet es la capacidad de seleccionar archivos e interactuar con ellos en el dispositivo local del usuario. En el siguiente fragmento de código de Python, puede ver cómo cargar una página web en HTMLDocument.
En caso de que pase una URL incorrecta a la que no se pueda acceder en este momento, la biblioteca genera PlatformException con el código especializado ‘NetworkError’ para informarle que no se puede encontrar el recurso seleccionado.
1from aspose.html import *
2
3# Load a document from the URL
4document = HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/document.html")
5
6# Write the document content to the output stream
7print(document.document_element.outer_html)
En el ejemplo anterior, hemos especificado el archivo document.html para cargar desde la URL.
Cargar desde código HTML
En caso de que su código HTML tenga los recursos vinculados (estilos, scripts, imágenes, etc.), debe pasar un parámetro base_uri
válido al constructor del documento. Se utilizará para resolver la ubicación del recurso durante la carga del documento.
Cargar HTML desde una cadena
Puede crear un documento a partir del contenido de una cadena utilizando uno de los constructores HTMLDocument(). Si desea crear un documento a partir de una cadena de usuario directamente en su código y guardarlo en un archivo, el siguiente ejemplo podría ayudarle. Creamos un documento HTML que contiene el texto “Hello, World!”
1import os
2from aspose.html import *
3
4# Prepare HTML code
5html_code = "<p>Hello, World!</p>"
6
7# Setup output directory
8output_dir = "output/"
9if not os.path.exists(output_dir):
10 os.makedirs(output_dir)
11
12# Initialize a document from the string variable
13document = HTMLDocument(html_code, ".")
14
15# Save the document to disk
16document.save(os.path.join(output_dir, "create-html-from-string.html"))
Cargar HTML desde una secuencia
Si prepara un código HTML como objetos en memoria
io.BytesIO, no necesita guardarlos en el archivo, simplemente pase su código HTML a constructores especializados. En el siguiente ejemplo, para crear un documento HTML a partir de una secuencia, usaremos el constructor HTMLDocument(content, base_uri)
:
1import os
2import io
3from aspose.html import *
4
5# Prepare an output path for saving the document
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10# Use BytesIO and pass a bytes string to it.
11content_stream = io.BytesIO(b"<p>Hello, World!</p>")
12base_uri = "."
13
14# Initialize a document from the content stream
15document = HTMLDocument(content_stream, base_uri)
16
17# Save the document to a file
18document.save(os.path.join(output_dir, "load-from-stream.html"))
io.BytesIO
crea un objeto de flujo que reside completamente en la memoria. Esto es útil para el almacenamiento temporal de datos sin necesidad de escribir en el disco.
Documento SVG
Los gráficos vectoriales escalables (SVG) son parte de los estándares W3C y pueden integrarse dentro de un documento HTML; Hemos implementado la clase SVGDocument con funcionalidad SVG completa basada en la especificación SVG2 oficial. Esto le permite cargar, leer y manipular documentos SVG de acuerdo con el estándar.
Dado que tanto SVGDocument
como HTMLDocument
se basan en el mismo estándar
WHATWG DOM, operaciones como cargar, leer, editar, convertir y guardar son similares para ambos tipos de documentos. Por lo tanto, cualquier ejemplo que demuestre manipulación con HTMLDocument
también se aplica a SVGDocument
.
Puede crear un documento a partir del contenido de una cadena utilizando el constructor
SVGDocument() apropiado. Si desea cargar un documento SVG desde una variable content_stream
en la memoria y no necesita guardarlo en un archivo, el siguiente ejemplo muestra cómo hacerlo:
1import io
2from aspose.html.dom.svg import *
3
4# Initialize an SVG document from a string object
5svg_content = "<svg xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>"
6base_uri = "."
7content_stream = io.BytesIO(svg_content.encode("utf-8"))
8
9document = SVGDocument(content_stream, base_uri)
10
11# Write the document content to the output stream
12print(document.document_element.outer_html)
En el ejemplo anterior, hemos creado el documento SVG que contiene un círculo con un radio de 50 píxeles. Puede obtener más información sobre cómo trabajar con documentos SVG en la documentación Aspose.SVG for Python via .NET.
Documento MHTML
MHTML es un formato para archivar páginas web. Agrupa el contenido HTML de una página web junto con todos los recursos asociados, como CSS, JavaScript, imágenes y archivos de audio, en un solo archivo. Los desarrolladores web suelen utilizar MHTML para guardar una instantánea de una página web con fines de archivo. la biblioteca de Python Aspose.HTML solo admite renderizar/convertir archivos MHTML a varios formatos de salida. Para obtener más información, consulte el artículo Conversión entre formatos.
Documento EPUB
EPUB es un formato ampliamente admitido para libros electrónicos y publicaciones electrónicas, compatible con la mayoría de los dispositivos de lectura, incluidos teléfonos inteligentes, tabletas y computadoras. Al igual que MHTML, Aspose.HTML solo admite la representación de archivos EPUB en varios formatos de salida. Para obtener más detalles, consulte el artículo Conversión entre formatos.
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 HTML Converter 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!