Enregistrer un document HTML en Python

Comment sauvegarder du HTML en Python

Cet article propose un guide détaillé sur la manière d’enregistrer un document HTML en utilisant Aspose.HTML for Python via .NET API. Après avoir travaillé avec des documents HTML, vous pouvez enregistrer les modifications en utilisant l’une des méthodes HTMLDocument.save(). Il existe des méthodes pour enregistrer un document dans un fichier ou une URL.

Veuillez noter que Aspose.HTML for Python via .NET propose deux approches différentes pour la création des fichiers de sortie :

  1. Approche basée sur le HTML : Cette méthode consiste à produire des fichiers de type HTML en sortie. Elle utilise la classe SaveOptions, qui sert de base à la gestion du processus d’enregistrement des ressources connexes telles que les scripts, les styles et les images. La classe ResourceHandler est responsable de la gestion de ces ressources. Elle est développée pour enregistrer le contenu HTML et les ressources associées dans des flux et fournit des méthodes qui vous permettent de contrôler ce qui sera fait avec la ressource.

  2. Approche de la représentation visuelle : Cette approche se concentre sur la création d’une représentation visuelle du HTML. Elle est basée sur la classe RenderingOptions, qui offre des méthodes spécialisées pour définir la taille des pages, les marges, la résolution, les styles utilisateur, etc.

Cet article couvre l’utilisation des classes SaveOptions et ResourceHandler.

Enregistrer HTML

Une fois que vous avez terminé de modifier votre document HTML, vous pouvez le sauvegarder. Vous pouvez le faire en utilisant l’une des méthodes save() fournies par la classe HTMLDocument. Voici un exemple simple en Python pour enregistrer un fichier HTML :

 1# Save HTML to a file 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)
 9
10document_path = os.path.join(output_dir, "save-html-document.html")
11
12# Create an empty HTML document
13with ah.HTMLDocument() as document:
14    # Create a text node and add it to the document
15    text = document.create_text_node("Hello, World!")
16    document.body.append_child(text)
17
18    # Save the HTML document
19    document.save(document_path)

Dans l’exemple ci-dessus, nous utilisons le constructeur HTMLDocument() pour initialiser un document HTML vide. La méthode create_text_node(data) de la classe HTMLDocument crée un nœud de texte à partir de la chaîne spécifiée. Lorsque vous appelez document.save(document_path), la méthode écrit le contenu HTML de l’objet document dans le fichier spécifié par document_path.

L’exemple ci-dessus est assez simple. Cependant, dans les applications réelles, vous avez souvent besoin d’un contrôle supplémentaire sur le processus d’enregistrement. Les sections suivantes décrivent comment utiliser les options de gestion des ressources ou enregistrer votre document dans les différents formats.

Options de sauvegarde et options de gestion des ressources

La classe SaveOptions est une classe de base qui permet de spécifier des options supplémentaires pour les opérations d’enregistrement et aide à gérer les ressources liées. La propriété resource_handling_options de la classe SaveOptions est utilisée pour la configuration de la gestion des ressources. La classe ResourceHandlingOptions définit les options de gestion des ressources associées à un document HTML. Elle fournit plusieurs propriétés permettant de contrôler la manière dont les différents types de ressources sont gérés lors de l’enregistrement ou du traitement du document :

Enregistrer HTML dans un fichier

L’extrait de code Python suivant montre comment utiliser la propriété resource_handling_options de la classe SaveOptions pour gérer les liens vers vos fichiers de documents.

 1# Save HTML with linked resources in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare output paths
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10
11document_path = os.path.join(output_dir, "save-with-linked-file.html")
12
13# Create an HTML file with a linked page
14with open(document_path, "w", encoding="utf-8") as file:
15    file.write("<p>Hello, World!</p><a href='linked.html'>linked file</a>")
16
17# Create the linked HTML file
18with open(os.path.join(output_dir, "linked.html"), "w", encoding="utf-8") as file:
19    file.write("<p>Hello, linked file!</p>")
20
21# Load and save the HTML document with directly linked pages
22output_path = os.path.join(output_dir, "save-with-linked-file_out.html")
23with ah.HTMLDocument(document_path) as document:
24    options = sav.HTMLSaveOptions()
25    options.resource_handling_options.max_handling_depth = 1
26    document.save(output_path, options)

Si vous devez enregistrer HTML sous forme d’image ou de document avec une mise en page fixe comme le PDF, vous pouvez convertir le document dans le format dont vous avez besoin. Reportez-vous à la section Convertisseur HTML pour plus d’informations.

Enregistrer HTML en MHTML

Dans certains cas, vous devez enregistrer votre page web sous la forme d’un fichier unique. le document MHTML peut s’avérer pratique et utile à cette fin, car il s’agit d’une archive de page web qui stocke tout à l’intérieur d’elle-même. L’énumération HTMLSaveFormat spécifie le format dans lequel le document est enregistré. Il peut s’agir des formats HTML, MHTML et Markdown. L’exemple ci-dessous montre comment utiliser la méthode save(path, save_format) pour l’enregistrement HTML vers MHTML.

 1# Save HTML as MHTML in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare the output path
 8output_dir = "output"
 9document_path = os.path.join(output_dir, "save-html-to-mhtml.mht")
10os.makedirs(output_dir, exist_ok=True)
11
12# Create an HTML file with a linked page
13with open("document.html", "w", encoding="utf-8") as file:
14    file.write("<p>Hello, World!</p><a href='linked-file.html'>linked file</a>")
15
16# Create the linked HTML file
17with open("linked-file.html", "w", encoding="utf-8") as file:
18    file.write("<p>Hello, linked file!</p>")
19
20# Load HTML and save it as MHTML
21with ah.HTMLDocument("document.html") as document:
22    document.save(document_path, sav.HTMLSaveFormat.MHTML)

Le fichier “save-to-MTHML.mht” enregistré stocke le code HTML des fichiers “document.html” et “linked-file.html”.

Enregistrer HTML en Markdown

Markdown est un langage de balisage avec une syntaxe de texte brut. Comme pour l’exemple HTML vers MHTML, vous pouvez utiliser le HTMLSaveFormat pour l’enregistrement HTML vers Markdown. Jetez un coup d’œil à l’exemple Python suivant :

 1# Save HTML as Markdown in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare input and output paths
 8data_dir = "data"
 9output_dir = "output"
10os.makedirs(output_dir, exist_ok=True)
11
12input_path = os.path.join(data_dir, "document.html")
13output_path = os.path.join(output_dir, "html-to-markdown.md")
14
15# Load HTML and save it as Markdown
16with ah.HTMLDocument(input_path) as document:
17    document.save(output_path, sav.HTMLSaveFormat.MARKDOWN)

Enregistrer SVG

Habituellement, le SVG est intégré dans un fichier HTML pour représenter des graphiques vectoriels tels que des images, des icônes, des tableaux, etc. Cependant, le SVG peut également être extrait d’une page web et manipulé indépendamment, comme un document HTML.

Puisque SVGDocument et HTMLDocument adhèrent tous deux au standard WHATWG DOM, leurs opérations - telles que le chargement, la lecture, l’édition, la conversion et la sauvegarde - sont largement similaires. Ainsi, tous les exemples démontrant la manipulation de HTMLDocument peuvent également être appliqués à SVGDocument.

 1# Create and save an SVG file in Python
 2
 3import os
 4import aspose.html.dom.svg as ahsvg
 5
 6# Prepare the output path
 7output_dir = "output"
 8document_path = os.path.join(output_dir, "save-html-to-svg.svg")
 9os.makedirs(output_dir, exist_ok=True)
10
11# Prepare SVG code
12svg_code = """
13<svg xmlns='http://www.w3.org/2000/svg' height='400' width='300'>
14    <path stroke="#a06e84" stroke-width="3" fill="#74aeaf" d="  
15	M 150,50 L 150, 300
16	M 120,100 L 150,50 L 180, 100
17    M 110,150 L 150,90 L 190, 150
18	M 90,220 L 150,130 L 210, 220
19	M 70,300 L 150,190 L 230, 300
20    M 110,310 L 150,240 L 190, 310
21	" />
22</svg>
23"""
24
25# Create and save the SVG document
26with ahsvg.SVGDocument(svg_code, ".") as document:
27    document.save(document_path)

Pour plus d’informations sur l’utilisation de l’API Aspose.SVG Python pour le traitement et le rendu des documents SVG, voir la Documentation Aspose.SVG pour Python via .NET.

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 !