Naviguer dans le HTML en Python

L’espace de noms Aspose.Html.Dom fournit une API qui représente et interagit avec tout document HTML, XML ou SVG et est entièrement basé sur la spécification WHATWG DOM prise en charge par de nombreux navigateurs modernes.

Cet article fournit des informations sur la manière d’extraire par programme des données de documents HTML avec Aspose.HTML for Python via .NET. Vous découvrirez :

  • comment naviguer dans un document HTML et effectuer une inspection détaillée de ses éléments à l’aide de l’API Python ;
  • comment naviguer dans le document en utilisant le sélecteur CSS et la requête XPath.

La navigation en HTML implique l’accès et la manipulation des éléments et de leurs relations au sein d’un document. Aspose.HTML for Python via .NET vous permet de naviguer et d’inspecter le HTML, ce qui implique de travailler avec le modèle d’objet de document (DOM) fourni par la bibliothèque. La liste suivante montre la manière la plus simple d’accéder à tous les éléments du DOM :

  1. Modèle objet du document (DOM) . La structure DOM représente le document HTML sous la forme d’un arbre de nœuds. Chaque nœud représente une partie du document, comme des éléments, du texte ou des commentaires.
  1. Éléments d’accès
  1. Naviguer dans l’arbre DOM
  1. Manipulation des éléments

Le API Reference Source fournit une liste complète des classes et des méthodes de l’espace de noms aspose.html.dom.

Nous examinons comment le DOM représente un document HTML en mémoire et comment utiliser l’API pour naviguer dans les fichiers HTML. Quatre des propriétés de la classe Node - first_child, last_child, next_sibling, et next_sibling, fournissent chacune une référence vivante à un autre élément avec la relation définie avec l’élément actuel si l’élément apparenté existe.

En utilisant les propriétés mentionnées, vous pouvez naviguer dans un document HTML comme suit :

 1# Navigate the HTML DOM using Python
 2
 3import aspose.html as ah
 4
 5# Prepare HTML code
 6html_code = "<span>Hello</span> <span>World!</span>"
 7
 8# Initialize a document from the prepared code
 9with ah.HTMLDocument(html_code, ".") as document:
10    # Get the reference to the first child (first SPAN) of the BODY
11    element = document.body.first_child
12    print(element.text_content)  # output: Hello,
13
14    # Get the reference to the whitespace between html elements
15    element = element.next_sibling
16    print(element.text_content)  # output: " "
17
18    # Get the reference to the second SPAN element
19    element = element.next_sibling
20    print(element.text_content)  # output: World!

Inspection du HTML

Aspose.HTML contient une liste de méthodes basées sur les Element Traversal Specifications. Vous pouvez effectuer une inspection détaillée du document et de ses éléments à l’aide de l’API. Le code Python suivant montre comment naviguer et extraire des éléments spécifiques et leurs propriétés d’un document HTML à l’aide d’Aspose.HTML for Python via .NET.

 1# Navigate and inspect HTML document using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Load a document from a file
 7data_dir = "data"  # Change this to your actual data directory
 8document_path = os.path.join(data_dir, "html_file.html")
 9with ah.HTMLDocument(document_path) as document:
10    # Get the html element of the document
11    element = document.document_element
12    print(element.tag_name)  # HTML
13
14    # Get the last element of the html element
15    element = element.last_element_child
16    print(element.tag_name)  # BODY
17
18    # Get the first element of the body element
19    element = element.first_element_child
20    print(element.tag_name)  # H1
21    print(element.text_content)  # Header 1

Le code Python fourni commence par définir le chemin d’accès au fichier HTML situé dans le répertoire “data”.

Requête XPath

L’alternative à la navigation HTML est la requête XPath ( XML Path Language) qui est souvent appelée simplement XPath. Il s’agit d’un langage de requête qui peut être utilisé pour interroger des données à partir de documents HTML. Il est basé sur une représentation DOM du document HTML et sélectionne les nœuds selon différents critères. La syntaxe des expressions XPath est assez simple et, ce qui est plus important, elle est facile à lire et à prendre en charge.

L’exemple suivant montre comment utiliser les requêtes XPath dans l’API Aspose.HTML Python :

 1# How to use XPath to select nodes using Python
 2
 3import aspose.html as ah
 4import aspose.html.dom.xpath as hxpath
 5
 6# Prepare HTML code
 7code = """
 8    <div class='happy'>
 9        <div>
10            <span>Hello,</span>
11        </div>
12    </div>
13    <p class='happy'>
14        <span>World!</span>
15    </p>
16"""
17
18# Initialize a document based on the prepared code
19with ah.HTMLDocument(code, ".") as document:
20    # Here we evaluate the XPath expression where we select all child SPAN elements from elements whose 'class' attribute equals to 'happy'
21    result = document.evaluate("//*[@class='happy']//span",
22                               document,
23                               None,
24                               hxpath.XPathResultType.ANY,
25                               None)
26
27    # Iterate over the resulted nodes
28    node = result.iterate_next()
29    while node is not None:
30        print(node.text_content)
31        node = result.iterate_next()
32        # output: Hello,
33        # output: World!

La méthode evaluate() de la bibliothèque Aspose.HTML Python vous permet d’exécuter des requêtes XPath sur des documents HTML ou XML, permettant l’extraction de données détaillées et la navigation. Elle prend une expression XPath comme paramètre principal, spécifiant la requête à exécuter, et renvoie un objet XPathResult basé sur le type de résultat défini.

Sélecteur CSS

Outre la navigation HTML et XPath, l’API Aspose.HTML Python prend en charge l’API CSS Selector API. Cette API vous permet de formuler des modèles de recherche à l’aide de la syntaxe CSS Selectors pour identifier et sélectionner des éléments dans un document HTML. Par exemple, la méthode query_selector_all(selector) peut être utilisée pour parcourir un document HTML et récupérer les éléments qui correspondent à un sélecteur CSS spécifié. Cette méthode accepte une chaîne de sélection CSS comme argument et renvoie une NodeList contenant tous les éléments conformes aux critères du sélecteur. Les sélecteurs CSS permettent de trouver et de manipuler efficacement des éléments en fonction de leurs attributs, de leurs classes, de leurs identifiants et d’autres critères, ce qui en fait un outil polyvalent pour les tâches d’analyse de documents simples et complexes. Cette fonctionnalité est particulièrement utile pour des tâches telles que le stylisme, l’extraction de données et la manipulation de contenu dans un document HTML.

 1# Extract nodes Using CSS selector using Python
 2
 3import aspose.html as ah
 4
 5# Prepare HTML code
 6code = """
 7    <div class='happy'>
 8        <div>
 9            <span>Hello,</span>
10        </div>
11    </div>
12    <p class='happy'>
13        <span>World!</span>
14        <p>I use CSS Selector.</p>
15    </p>
16"""
17
18# Initialize a document based on the prepared code
19with ah.HTMLDocument(code, ".") as document:
20    # Create a CSS Selector that extracts all elements whose "class" attribute equals "happy" and their child <span> elements
21    elements = document.query_selector_all(".happy span")
22
23# Iterate over the resulted list of elements
24    for element in elements:
25        print(element.text_content)
26        # output: Hello,
27        # output: World!

Conclusion

La bibliothèque Aspose.HTML for Python via .NET offre un ensemble d’outils robustes pour travailler avec des documents HTML, XML et SVG, en adhérant à la spécification WHATWG DOM largement supportée par les navigateurs modernes. En utilisant la classe HTMLDocument et ses diverses propriétés et méthodes de navigation, vous pouvez efficacement interagir avec et manipuler le contenu HTML, en évitant les complexités de l’extraction manuelle des données et en vous concentrant sur des aspects plus stratégiques de vos projets.

Aspose.HTML propose des applications Web HTML gratuites en ligne qui constituent une collection de convertisseurs, de fusions, d’outils de référencement, de générateurs de code HTML, d’outils d’URL, de vérifications de l’accessibilité du web, et bien d’autres choses encore. Les applications fonctionnent sur n’importe quel système d’exploitation doté d’un navigateur web et ne nécessitent aucune installation de logiciel supplémentaire. Utilisez notre collection d’applications web HTML pour effectuer vos tâches quotidiennes et faciliter votre travail !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.