Créer un document en Python avec Aspose.HTML – Créer ou charger du HTML, SVG, MHTML, EPUB

Cet article propose un guide détaillé sur la création d’un document HTML à l’aide d’Aspose.HTML for Python via .NET API. L’API fournit la classe HTMLDocument, qui est la racine de la hiérarchie HTML et qui contient l’ensemble du contenu. Cette classe possède un ensemble de constructeurs qui vous permettent de créer ou de charger des documents HTML de différentes manières. Les documents HTML peuvent être créés à partir de zéro en tant que document vide avec une structure HTML, à partir d’une chaîne, d’un flux de mémoire ou chargés à partir d’un fichier ou d’une URL.

Document HTML

Le HTMLDocument est le point de départ de la bibliothèque Python Aspose.HTML. Vous pouvez charger le document HTML dans le Document Object Model (DOM) en utilisant l’un des constructeurs HTMLDocument() et ensuite lire et modifier par programme l’arbre du document, ajouter et supprimer des nœuds, modifier les propriétés des nœuds dans le document tel qu’il est décrit dans les spécifications officielles.

La classe HTMLDocument fournit une représentation en mémoire d’un HTML DOM qui est entièrement conforme aux spécifications W3C DOM et WHATWG DOM. Si vous êtes familier avec les standards WHATWG DOM, WHATWG HTML et JavaScript, l’utilisation de l’API Aspose.HTML for Python via .NET sera très confortable et facile.

Créer un document HTML vide

L’extrait de code Python suivant montre l’utilisation du constructeur par défaut HTMLDocument() pour créer un document HTML vide et l’enregistrer dans un fichier.

 1# Create an empty HTML document 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)
 9save_path = os.path.join(output_dir, "document-empty.html")
10
11# Create and save an empty HTML document
12with ah.HTMLDocument() as document:
13    # Work with the document here
14    document.save(save_path)

Après la création, le fichier document-empty.html apparaît avec la structure initiale du document : le document vide comprend des éléments tels que <html> <head> et <body>. Une fois l’objet document créé, il peut être rempli ultérieurement avec des éléments HTML.

Créer un nouveau document HTML

Si vous souhaitez créer un document HTML de manière programmatique à partir de zéro, veuillez utiliser le constructeur sans paramètres comme indiqué dans l’extrait de code suivant :

 1# Create an HTML document in Python using the DOM
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare the output path
 7output_dir = "output"
 8os.makedirs(output_dir, exist_ok=True)
 9document_path = os.path.join(output_dir, "create-new-document.html")
10
11# Create an empty HTML document
12with ah.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 HTML document
18    document.save(document_path)

Dans le nouveau document, nous avons créé un nœud de texte, avec la chaîne spécifiée, en utilisant la méthode create_text_node() et nous l’avons ajouté à l’élément <body> en utilisant la méthode append_child().

La manière d’éditer un fichier HTML est décrite en détail dans l’article Éditer un document HTML.

Pour plus de détails sur l’enregistrement des fichiers HTML, voir l’article Enregistrer un document HTML.

Charger du HTML à partir d’un fichier

Si vous souhaitez charger un fichier HTML existant à partir d’un fichier, le travailler et l’enregistrer, l’extrait de code suivant vous sera utile :

 1# Load an HTML file in Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare input and output paths
 7output_dir = "output"
 8input_dir = "data"
 9os.makedirs(output_dir, exist_ok=True)
10
11document_path = os.path.join(input_dir, "document.html")
12save_path = os.path.join(output_dir, "document-edited.html")
13
14# Load, process, and save the HTML document
15with ah.HTMLDocument(document_path) as document:
16    # Work with the document here
17    document.save(save_path)

Dans l’exemple ci-dessus, le code Python configure les répertoires et les chemins pour lire un document HTML à partir du répertoire “data” et enregistrer une version modifiée dans le répertoire “output”. Il initialise le document HTML à partir du fichier spécifié, le traite, puis enregistre le document modifié dans le chemin de sortie désigné.

Charger du HTML à partir d’une URL

L’une des fonctionnalités les plus utilisées d’Internet est la possibilité de sélectionner des fichiers et d’interagir avec eux sur l’appareil local de l’utilisateur. Dans l’extrait de code Python suivant, vous verrez comment charger une page web dans le HTMLDocument.

Si vous passez une mauvaise URL qui ne peut pas être atteinte à ce moment précis, la bibliothèque lance une PlatformException avec le code spécialisé NetworkError pour vous informer que la ressource sélectionnée ne peut pas être trouvée.

1# Load HTML from a URL in Python
2
3import aspose.html as ah
4
5# Load the web page and print its HTML
6with ah.HTMLDocument("https://docs.aspose.com/html/files/aspose.html") as document:
7    print(document.document_element.outer_html)

Dans l’exemple ci-dessus, nous avons spécifié le fichier document.html à charger à partir de l’URL.

Chargement à partir du code HTML

Si votre code HTML contient des ressources liées (styles, scripts, images, etc.), vous devez passer un paramètre base_uri valide au constructeur du document. Il sera utilisé pour résoudre l’emplacement de la ressource pendant le chargement du document.

Charger du HTML à partir d’une chaîne de caractères

Vous pouvez créer un document à partir du contenu d’une chaîne en utilisant l’un des constructeurs HTMLDocument(). Si vous souhaitez créer un document à partir d’une chaîne de caractères directement dans votre code et l’enregistrer dans un fichier, l’exemple suivant peut vous aider. Nous créons un document HTML qui contient le texte “Hello, World !”

 1# Create an HTML document from a string in Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Define the HTML content
 7html_code = "<p>Hello, World!</p>"
 8
 9# Prepare the output path
10output_dir = "output"
11os.makedirs(output_dir, exist_ok=True)
12save_path = os.path.join(output_dir, "create-html-from-string.html")
13
14# Create an HTML document from the string and save it
15with ah.HTMLDocument(html_code, ".") as document:
16    document.save(save_path)

Charger du HTML à partir d’un flux

Si vous préparez un code HTML sous forme d’objets io.BytesIO en mémoire, vous n’avez pas besoin de les enregistrer dans le fichier, il vous suffit de passer votre code HTML dans des constructeurs spécialisés. Dans l’exemple suivant, pour créer un document HTML à partir d’un flux, nous utiliserons le constructeur HTMLDocument(content, base_uri) :

 1# Load HTML from a stream in Python
 2
 3import os
 4import io
 5import aspose.html as ah
 6
 7# Prepare the output path
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10save_path = os.path.join(output_dir, "load-from-stream.html")
11
12# Define the base URI for relative resources
13base_uri = "."
14
15# Load HTML from a memory stream and save it
16with io.BytesIO(b"<p>Hello, World!</p>") as content_stream:
17    with ah.HTMLDocument(content_stream, base_uri) as document:
18        document.save(save_path)

io.BytesIO crée un objet flux qui réside entièrement en mémoire. Ceci est utile pour le stockage temporaire de données sans avoir besoin d’écrire sur le disque.

Document SVG

Scalable Vector Graphics (SVG) fait partie des normes W3C et peut être intégré dans un document HTML ; nous avons implémenté la classe SVGDocument avec une fonctionnalité SVG complète basée sur la spécification officielle SVG2. Cela vous permet de charger, de lire et de manipuler des documents SVG conformément à la norme.

Puisque SVGDocument et HTMLDocument sont tous deux basés sur le même standard WHATWG DOM, les opérations telles que le chargement, la lecture, l’édition, la conversion et la sauvegarde sont similaires pour les deux types de documents. Par conséquent, tous les exemples démontrant la manipulation de HTMLDocument s’appliquent également à SVGDocument.

Vous pouvez créer un document à partir d’une chaîne de caractères en utilisant le constructeur SVGDocument() approprié. Si vous voulez charger un document SVG à partir d’une variable content_stream en mémoire et que vous n’avez pas besoin de le sauvegarder dans un fichier, l’exemple ci-dessous montre comment le faire :

 1# Create an SVG document from a string in Python
 2
 3import io
 4import aspose.html.dom.svg as ahsvg
 5
 6# Define the SVG content
 7svg_content = "<svg xmlns='http://www.w3.org/2000/svg'><circle cx='50' cy='50' r='40'/></svg>"
 8base_uri = "."
 9
10# Create an SVG document from a memory stream
11with io.BytesIO(svg_content.encode("utf-8")) as content_stream:
12    with ahsvg.SVGDocument(content_stream, base_uri) as document:
13        # Print and save the SVG document
14        print(document.document_element.outer_html)
15        document.save("load-from-stream.svg")

Dans l’exemple ci-dessus, nous avons créé un document SVG contenant un cercle d’un rayon de 50 pixels. Pour en savoir plus sur l’utilisation des documents SVG, consultez la documentation Aspose.SVG for Python via .NET.

Document MHTML

MHTML est un format d’archivage de pages web. Il regroupe dans un seul fichier le contenu HTML d’une page web ainsi que toutes les ressources associées, telles que les feuilles de style CSS, le JavaScript, les images et les fichiers audio. Le MHTML est couramment utilisé par les développeurs web pour enregistrer un instantané d’une page web à des fins d’archivage. La bibliothèque Aspose.HTML Python ne prend en charge que le rendu/la conversion des fichiers MHTML dans différents formats de sortie. Pour plus d’informations, reportez-vous à l’article Conversion entre formats.

Document EPUB

EPUB est un format largement pris en charge pour les livres électroniques et les publications électroniques, compatible avec la plupart des appareils de lecture, y compris les smartphones, les tablettes et les ordinateurs. Comme MHTML, Aspose.HTML ne prend en charge que le rendu des fichiers EPUB dans différents formats de sortie. Pour plus de détails, voir l’article Conversion entre formats.

Vous pouvez télécharger les exemples complets et les fichiers de données depuis GitHub.

Téléchargez la bibliothèque Aspose.HTML for Python via .NET pour manipuler avec succès, rapidement et facilement vos documents HTML. La bibliothèque Python peut créer, modifier, extraire des données, convertir et rendre des documents HTML sans nécessiter de logiciel externe. Elle prend en charge les formats de fichiers les plus courants tels que EPUB, MHTML, XML, SVG et Markdown et peut convertir les documents en formats PDF, DOCX, XPS et Image.

Aspose.HTML propose un Convertisseur HTML en ligne gratuit pour convertir des documents HTML dans une variété de formats populaires. Il suffit de charger du HTML à partir d’un fichier ou d’une URL, de choisir le format à convertir et le tour est joué. C’est rapide et entièrement gratuit !