Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Travail Avec des Éléments Spécifiques | Décodage du HTML avec Beautiful Soup
Web Scraping avec Python

bookTravail Avec des Éléments Spécifiques

La navigation dans un document HTML à l'aide des attributs Python permet de récupérer uniquement la première occurrence d'un élément. Pour trouver la première instance d'un élément sans connaître son chemin complet, utiliser la méthode .find() et passer le nom de la balise sous forme de chaîne de caractères (sans les crochets < >). Par exemple, localiser le premier élément <div> dans le document HTML.

123456789101112
# 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"))
copy

Il est également possible de récupérer toutes les instances d'un élément spécifique à l'aide de la méthode .find_all(). Celle-ci retourne une liste de toutes les correspondances. Par exemple, trouver toutes les balises <p> dans le document HTML.

123456789101112
# 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_all("p"))
copy

La méthode .find_all() permet de localiser plusieurs balises en passant une liste de noms de balises. Par exemple, collecter tous les éléments <div> et <title>.

12345678910111213
# 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/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain the difference between `.find()` and `.find_all()` in BeautifulSoup?

How can I extract the text content from the elements found?

What other attributes can I use with `.find()` or `.find_all()` to filter elements?

Awesome!

Completion rate improved to 4.35

bookTravail Avec des Éléments Spécifiques

Glissez pour afficher le menu

La navigation dans un document HTML à l'aide des attributs Python permet de récupérer uniquement la première occurrence d'un élément. Pour trouver la première instance d'un élément sans connaître son chemin complet, utiliser la méthode .find() et passer le nom de la balise sous forme de chaîne de caractères (sans les crochets < >). Par exemple, localiser le premier élément <div> dans le document HTML.

123456789101112
# 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"))
copy

Il est également possible de récupérer toutes les instances d'un élément spécifique à l'aide de la méthode .find_all(). Celle-ci retourne une liste de toutes les correspondances. Par exemple, trouver toutes les balises <p> dans le document HTML.

123456789101112
# 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_all("p"))
copy

La méthode .find_all() permet de localiser plusieurs balises en passant une liste de noms de balises. Par exemple, collecter tous les éléments <div> et <title>.

12345678910111213
# 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/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
some-alt