Comment analyser HTML dans Python

Comment analyser HTML dans Python

Aspose.HTML FOSS pour Python analyse le balisage avec l’algorithme standard de construction d’arbre : HTMLDocument.parse() pour les pages complètes, HTMLDocument.parse_fragment() pour les fragments, et des classes d’éléments typées (HTMLElement et ses sous-classes) dans le résultat. Ce guide couvre les points d’entrée de l’analyse et vérifie la sortie via le DOM, en utilisant pip pour l’installation.

Guide pas à pas

Étape 1 : installer le paquet

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Étape 2 : importer les classes requises

from aspose_html.html_document import HTMLDocument
from aspose_html.dom import Document

Étape 3 : choisir le bon point d’entrée d’analyse

HTMLDocument.parse() effectue la construction d’arbre complet du document avec récupération d’erreurs standard; HTMLDocument.parse_fragment() applique l’algorithme de fragment pour le balisage partiel; HTMLDocument.load() lit depuis une source. Les éléments analysés arrivent typés — un <a> est un HTMLAnchorElement, un <input> un HTMLInputElement.


Étape 4: Vérifier la sortie via le DOM

Le résultat analysé est un arbre DOM normal — les mêmes API de recherche et d’attributs s’appliquent. Construire la structure équivalente programmatique montre la surface partagée:

doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "content")
doc.append_child(el)
print(doc.get_element_by_id("content").has_child_nodes())

Étape 5: Continuer avec les styles ou la structure

Attachez les feuilles de style et lisez les styles calculés, ou utilisez les assistants d’insertion Element (insert_adjacent_html(), insert_adjacent_text()) pour des modifications localisées — la sortie de l’analyse alimente chaque autre couche.

Problèmes courants et solutions

Le balisage partiel obtient des enveloppes html et body. parse() applique les règles de document complet ; utilisez parse_fragment() pour les extraits.

Le balisage malformé est analysé sans erreurs. C’est le comportement des normes — la construction de l’arbre définit la récupération pour chaque cas d’erreur plutôt que de lever une exception.

Le contenu du tableau apparaît en dehors de son tableau. Foster parenting du contenu de tableau mal placé fait partie de l’algorithme ; corrigez l’imbrication source.

Foire aux questions

Les éléments analysés sont-ils typés?

Oui — l’analyse produit la hiérarchie HTMLElement: contrôles de formulaire (HTMLFormElement, HTMLInputElement), contenu intégré (HTMLImageElement, HTMLCanvasElement), navigation (HTMLAnchorElement), et plus encore.

Puis-je piloter le pipeline d’analyse à un niveau inférieur?

Oui — les Tokenizer et TreeBuilder sont publics, avec parse_html() comme enveloppe à appel unique.

L’analyse exécute-t-elle des scripts?

Non. L’évaluation du script est explicite et séparée via JSContext.

Voir aussi

 Français