Navigation par Tags
Dans ce chapitre, nous allons parler de la navigation par balises.
Voici notre document html -
>>> html_doc = """
<html><head><title>Microlead</title></head>
<body>
<p class="title"><b>Les meilleurs cours en ligne, et gratuits !</b></p>
<p class="prog">Les 5 langages de programmation les plus utilisés sont :
<a href="https://www.microlead.fr/cours/php" class="prog" id="link1">PHP</a>,
<a href="https://www.microlead.fr/cours/javascript" class="prog" id="link2">Javascript</a>,
<a href="https://www.microlead.fr/cours/go" class="prog" id="link3">Go</a>,
<a href="https://www.microlead.fr/cours/html" class="prog" id="link4">HTML</a> et
<a href="https://www.microlead.fr/cours/css" class="prog" id="link5">CSS</a>;
selon l'enquête en ligne.</p>
<p class="prog">Langage de programmation</p>
"""
>>>
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html_doc, 'html.parser')
>>>
Sur la base du document ci-dessus, nous allons essayer de passer d'une partie du document à une autre.
Descendre
Les balises, qui peuvent contenir d'autres balises/chaînes (enfants de la balise), constituent l'un des éléments importants de tout document HTML. Beautiful Soup propose différents moyens de naviguer et d'itérer sur les enfants d'une balise.
Navigation en utilisant les noms des balises
La façon la plus simple de rechercher un arbre d'analyse est de rechercher la balise par son nom. Si vous voulez la balise <head>
, utilisez soup.head
-
>>> soup.head
<head>&t;title>Microlead</title></head>
>>> soup.title
<title>Microlead</title>
Pour obtenir une balise spécifique (comme la première balise <b>
) dans la balise <body>
.
>>> soup.body.b
<b>Les meilleurs cours en ligne, et gratuits !</b>
Si vous utilisez le nom d'une balise comme attribut, vous obtiendrez uniquement la première balise portant ce nom.
>>> soup.a
<a class="prog" href="https://www.microlead.fr/cours/php" id="link1">PHP</a>
Pour obtenir tous les attributs d'une balise, vous pouvez utiliser la méthode find_all()
.
>>> soup.find_all("a")
[<a class="prog" href="https://www.microlead.fr/cours/php" id="link1">PHP</a>, <a class="prog" href="https://www.microlead.fr/cours/javascript" id="link2">C</a>, <a class="prog" href="https://www.microlead.fr/cours/html" id="link3">Python</a>, <a class="prog" href="https://www.microlead.fr/cours/css" id="link4">JavaScript</a>, <a class="prog" href="https://www.microlead.fr/cours/go" id="link5">C</a>]>>> soup.find_all("a")
[<a class="prog" href="https://www.microlead.fr/cours/php" id="link1">PHP</a>, <a class="prog" href="https://www.microlead.fr/cours/javascript" id="link2">C</a>, <a class="prog" href="https://www.microlead.fr/cours/html" id="link3">Python</a>, <a class="prog" href="https://www.microlead.fr/cours/css" id="link4">JavaScript</a>, <a class="prog" href="https://www.microlead.fr/cours/go" id="link5">C</a>]
.contents et .children
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !