Contenu du cours
Extraction de Données Web avec Python
Extraction de Données Web avec Python
Attributs et Contenus de l'Élément
Les méthodes abordées dans les sections précédentes renvoient des parties spécifiques du code HTML. BeautifulSoup nous permet de récupérer les attributs et le contenu d'éléments particuliers. Pour accéder aux attributs d'un objet, utilisez l'attribut .attrs
. Par exemple, nous pouvons récupérer les attributs du premier élément <div>
.
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div").attrs)
Il est important de noter que le résultat de l'utilisation de l'attribut .attrs
est un dictionnaire où les clés sont les noms d'attributs et les valeurs sont leurs valeurs respectives. Si vous souhaitez obtenir le contenu stocké dans une balise, utilisez l'attribut .contents. Par exemple, examinons le contenu du premier élément <div>
.
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div").contents)
Comme on l'a observé ci-dessus, tous les caractères de saut de ligne ont été inclus dans une liste d'éléments, ce qui n'est peut-être pas la représentation la plus souhaitable du contenu. Si vous souhaitez extraire uniquement le texte contenu dans un élément spécifique, utilisez la méthode .get_text()
. Comparez les résultats de l'exemple ci-dessous avec celui obtenu précédemment.
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div").get_text())
Merci pour vos commentaires !