Manipuler les fichiers HTML de manière programmatique est essentiel pour créer des outils et éditeurs de contenu web dynamiques. Aspose.HTML for Python via .NET fournit une implémentation DOM basée sur les standards qui vous permet de créer des documents à partir de zéro, d’inspecter le balisage existant et de le réécrire — le tout sans navigateur et sans expressions régulières. Ce guide divise le travail en trois sections ciblées : create, read et edit, chacune avec son propre exemple exécutable. À la fin, vous disposerez d’un flux de travail réutilisable que vous pourrez intégrer à n’importe quel pipeline de contenu basé sur Python.

Avant de commencer : prérequis et installation

Pour suivre ce tutoriel, vous avez besoin de :

  • Python 3.8 ou version plus récente installé sur votre machine de développement.
  • Un système d’exploitation 64 bits (Windows, Linux ou macOS) — le package inclut des binaires natifs .NET.
  • Une licence valide Aspose.HTML for Python via .NET (des licences temporaires sont disponibles).

Installez le SDK avec pip :

pip install aspose-html-net

Vous pouvez également télécharger les dernières binaires directement depuis la page de téléchargement. Après l’installation, importez les types dont vous avez besoin :

from aspose.html import HTMLDocument
from aspose.html.saving import HTMLSaveOptions

Si vous disposez d’un fichier de licence, appliquez‑le une fois au démarrage de l’application afin que la sortie soit exempte des limitations d’évaluation :

from aspose.html import License

license = License()
license.set_license("Aspose.HTML.Python.lic")

Avec le SDK prêt, parcourons les trois opérations principales.

Construire étape par étape : créer, lire et modifier du HTML en Python

Créer un document HTML en Python

Un HTMLDocument vide contient déjà le squelette html, head et body, vous pouvez donc commencer à ajouter des nœuds immédiatement. Les éléments sont créés par create_element(), les nœuds texte par create_text_node(), et les deux sont attachés à l’arbre avec append_child().

from aspose.html import HTMLDocument

# An empty document already has <html>, <head>, and <body>
document = HTMLDocument()
document.title = "Sample Document"

# <h1 id="mainHeader">Welcome to Aspose.HTML</h1>
header = document.create_element("h1")
header.set_attribute("id", "mainHeader")
header.append_child(document.create_text_node("Welcome to Aspose.HTML"))
document.body.append_child(header)

# <p>This document was generated programmatically.</p>
paragraph = document.create_element("p")
paragraph.text_content = "This document was generated programmatically."
document.body.append_child(paragraph)

document.save("created.html")

Parce que chaque nœud est créé via le document, le balisage résultant est toujours bien formé — pas d’équilibrage manuel des balises et pas de concaténation de chaînes.

Lire un document HTML existant avec Python

Passez un chemin de fichier au constructeur HTMLDocument et Aspose.HTML analyse le fichier en un arbre DOM dynamique. À partir de là, vous l’interrogez exactement comme vous le feriez dans un navigateur : par id, par nom de balise ou avec un sélecteur CSS.

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
print("Title:", document.title)

# Look up a single element by its id
header = document.get_element_by_id("mainHeader")
if header is not None:
    print("Header:", header.text_content)

# Iterate over every paragraph in the document
paragraphs = document.get_elements_by_tag_name("p")
for index in range(paragraphs.length):
    print(f"Paragraph {index}:", paragraphs[index].text_content)

# CSS selectors work too
for link in document.query_selector_all("a[href]"):
    print("Link:", link.get_attribute("href"))

# Serialize the whole tree back to markup when you need the raw HTML
print(document.document_element.outer_html)

Vous pouvez également analyser le balisage déjà en mémoire en transmettant le contenu plus une URI de base, ce qui est pratique lorsque le HTML provient d’une réponse d’API :

content = "<html><body><p>Loaded from a string.</p></body></html>"
document = HTMLDocument(content, ".")

Modifier un document HTML existant en Python

L’édition n’est qu’une mutation du DOM : attribuez à text_content ou inner_html, modifiez les attributs avec set_attribute(), insérez des nœuds avec append_child(), et supprimez des nœuds avec remove_child(). Enregistrez le résultat lorsque vous avez terminé.

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
# 1. Update the document title
document.title = "Edited Document Title"

# 2. Replace the header text
header = document.get_element_by_id("mainHeader")
if header is not None:
    header.text_content = "Edited Header via Aspose.HTML"

# 3. Insert a highlighted notice block
notice = document.create_element("div")
notice.set_attribute("class", "highlight")
notice.inner_html = "<strong>Important notice:</strong> This div was inserted at runtime."
document.body.append_child(notice)

# 4. Remove the first paragraph
paragraphs = document.get_elements_by_tag_name("p")
if paragraphs.length > 0:
    obsolete = paragraphs[0]
    obsolete.parent_node.remove_child(obsolete)

document.save("edited.html")

Ces trois opérations s’enchaînent proprement : créer une fois, lire chaque fois que vous devez inspecter, et modifier aussi souvent que le contenu change.

Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (created.html, edited.html, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Conclusion

La création, la lecture et la modification de fichiers HTML en Python devient simple avec Aspose.HTML for Python via .NET. Chaque opération correspond à un idiome DOM familier : créez des nœuds avec create_element(), interrogez‑les avec get_element_by_id() et query_selector_all(), modifiez‑les via text_content, inner_html et set_attribute(), puis persistez‑les avec save(). N’oubliez pas d’obtenir une licence appropriée pour une utilisation en production ; les détails de tarification sont disponibles sur la page du produit, et une licence temporaire peut être obtenue depuis la page de licence temporaire. Avec le SDK en main, vous pouvez désormais créer des outils de manipulation HTML robustes qui s’intègrent parfaitement à toute application basée sur Python.

FAQ

  • Comment créer un fichier HTML en Python avec Aspose.HTML ?
    Instanciez un HTMLDocument vide, créez des nœuds avec create_element() et create_text_node(), attachez‑les avec append_child() et appelez document.save("created.html"). L’exemple de création ci‑dessus montre la séquence complète.

  • Comment lire le contenu d’un fichier HTML existant ? Passez le chemin du fichier au constructeur HTMLDocument, puis interrogez le DOM avec get_element_by_id(), get_elements_by_tag_name() ou query_selector_all(). Les valeurs sont accessibles via text_content, inner_html et get_attribute().

  • Comment modifier un document HTML et enregistrer les modifications ? Chargez le document, affectez‑lui text_content ou inner_html, modifiez les attributs avec set_attribute(), ajoutez des nœuds avec append_child() et supprimez‑les avec remove_child(). Ensuite, appelez document.save(), en passant éventuellement une instance de HTMLSaveOptions.

  • Où puis-je trouver plus d’exemples, de documentation et de support ? La documentation officielle fournit des guides détaillés, la référence API répertorie toutes les classes et membres, et la communauté est accessible via le forum Aspose.HTML.

En savoir plus