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 using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare an output path for saving the document
 7output_dir = "output/"
 8if not os.path.exists(output_dir):
 9    os.makedirs(output_dir)
10
11document_path = os.path.join(output_dir, "save-html-document.html")
12
13# Initialize an empty HTML document
14with ah.HTMLDocument() as document:
15    # Create a text node and add it to the document
16    text = document.create_text_node("Hello, World!")
17    document.body.append_child(text)
18
19    # Save HTML to a file
20    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 a linked resources using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare an output path for the document
 8output_dir = "output"
 9if not os.path.exists(output_dir):
10    os.makedirs(output_dir)
11
12document_path = os.path.join(output_dir, "save-with-linked-file.html")
13
14# Prepare a simple HTML file with a linked document
15with open(document_path, "w") as file:
16    file.write("<p>Hello, World!</p>" +
17               "<a href='linked.html'>linked file</a>")
18
19# Prepare a simple linked HTML file
20with open(os.path.join(output_dir, "linked.html"), "w") as file:
21    file.write("<p>Hello, linked file!</p>")
22
23# Load the "save-with-linked-file.html" into memory
24document = ah.HTMLDocument(document_path)
25
26# Create a save options instance
27options = sav.HTMLSaveOptions()
28
29# The following line with value '0' cuts off all other linked HTML-files while saving this instance
30# If you remove this line or change value to '1', the 'linked.html' file will be saved as well to the output folder
31options.resource_handling_options.max_handling_depth = 1
32
33# Save the document with the save options
34output_path = os.path.join(output_dir, "save-with-linked-file_out.html")
35document.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 using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Define the output directory and document path
 8output_dir = 'output'
 9document_path = os.path.join(output_dir, 'save-html-to-mhtml.mht')
10
11# Ensure the output directory exists
12os.makedirs(output_dir, exist_ok=True)
13
14# Prepare a simple HTML file with a linked document
15with open('document.html', 'w') as file:
16    file.write("<p>Hello, World!</p>"
17               "<a href='linked-file.html'>linked file</a>")
18
19# Prepare a simple linked HTML file
20with open('linked-file.html', 'w') as file:
21    file.write("<p>Hello, linked file!</p>")
22
23# Load the "document.html" into memory
24with ah.HTMLDocument('document.html') as document:
25    # Save the document to MHTML format
26    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 using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.saving as sav
 6
 7# Prepare a path to a source and output HTML file
 8data_dir = "data"
 9output_dir = "output/"
10if not os.path.exists(output_dir):
11    os.makedirs(output_dir)
12
13input_path = os.path.join(data_dir, "document.html")
14output_path = os.path.join(output_dir, "html-to-markdown.md")
15
16# Load the HTML document from a file
17document = ah.HTMLDocument(input_path)
18
19# Save the document to MHTML format
20document.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 SVG document using Python
 2
 3import os
 4import aspose.html.dom.svg as ahsvg
 5
 6# Define the output directory and document path
 7output_dir = 'output'
 8document_path = os.path.join(output_dir, 'save-html-to-svg.svg')
 9
10# Ensure the output directory exists
11os.makedirs(output_dir, exist_ok=True)
12
13# Prepare SVG code
14svg_code = """
15<svg xmlns='http://www.w3.org/2000/svg' height='400' width='300'>
16    <path stroke="#a06e84" stroke-width="3" fill="#74aeaf" d="  
17	M 150,50 L 150, 300
18	M 120,100 L 150,50 L 180, 100
19    M 110,150 L 150,90 L 190, 150
20	M 90,220 L 150,130 L 210, 220
21	M 70,300 L 150,190 L 230, 300
22    M 110,310 L 150,240 L 190, 310
23	" />
24</svg>
25"""
26
27# Initialize an SVG instance from the content string
28document = ahsvg.SVGDocument(svg_code, '.')
29
30# Save SVG
31document.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.