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 :

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

 1import os
 2from aspose.html import *
 3
 4# Load a document from a file
 5data_dir = "data"
 6document_path = os.path.join(data_dir, "html_file.html")
 7with HTMLDocument(document_path) as document:
 8    # Get the <html> element of the document
 9    element = document.document_element
10    print(element.tag_name)  # HTML
11
12    # Get the last element of the <html> element
13    element = element.last_element_child
14    print(element.tag_name)  # BODY
15
16    # Get the first element of the <body> element
17    element = element.first_element_child
18    print(element.tag_name)  # H1
19    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 :

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

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