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.
- L’API Python Aspose.HTML fournit l’espace de noms aspose.html.saving avec les classes SaveOptions et ResourceHandlingOptions qui vous permettent de définir des options pour les opérations d’enregistrement.
- Aspose.HTML for Python via .NET fournit l’espace de noms aspose.html.saving.resourcehandlers qui contient les classes ResourceHandler et FileSystemResourceHandler responsables de la gestion des ressources.
Veuillez noter que Aspose.HTML for Python via .NET propose deux approches différentes pour la création des fichiers de sortie :
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.
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 :
la propriété java_script détermine la manière dont les ressources JavaScript sont gérées. Elles peuvent être sauvegardées en tant que fichier lié séparé, intégrées dans un fichier HTML ou même être ignorées. La valeur par défaut est
ResourceHandling.SAVE
.la propriété default définit la méthode de gestion par défaut pour toutes les ressources. La valeur par défaut est
ResourceHandling.SAVE
.la propriété resource_url_restriction définit les restrictions d’URL pour les ressources telles que CSS, JavaScript et les images. La valeur par défaut est
UrlRestriction.SAME_HOST
, qui restreint les ressources à celles hébergées sur le même domaine que le document.la propriété page_url_restriction spécifie les restrictions d’URL pour les pages. La valeur par défaut est
UrlRestriction.ROOT_AND_SUB_FOLDERS
, ce qui signifie que seules les pages situées dans le répertoire racine et ses sous-dossiers seront traitées.la propriété max_handling_depth contrôle la profondeur maximale de traitement des pages. Une profondeur de 1 signifie que seules les pages directement référencées dans le document enregistré seront traitées. La valeur -1 de cette propriété permet de traiter toutes les pages. La valeur par défaut est 0, ce qui signifie que seul le document lui-même sera traité.
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 !