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 pour Python via l’API .NET. 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 :

 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)

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.

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

 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)

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 :

 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)

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.

 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)

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 !

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.