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.