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 particulier. Mais que faire si vous souhaitez obtenir la première instance d’un élément sans connaître son chemin complet ? Dans ce cas, vous pouvez utiliser la méthode .find(), en passant la balise (sans les crochets < >) sous forme de chaîne de caractères. Par exemple, localisons 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

De plus, il est possible de récupérer toutes les instances d’un élément spécifique en utilisant la méthode .find_all(). Cela renverra une liste d’instances. Par exemple, localisons 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 également de rechercher plusieurs balises en fournissant une liste de balises. Par exemple, il est possible de récupérer 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 methods can I use to search for elements in BeautifulSoup?

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 particulier. Mais que faire si vous souhaitez obtenir la première instance d’un élément sans connaître son chemin complet ? Dans ce cas, vous pouvez utiliser la méthode .find(), en passant la balise (sans les crochets < >) sous forme de chaîne de caractères. Par exemple, localisons 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

De plus, il est possible de récupérer toutes les instances d’un élément spécifique en utilisant la méthode .find_all(). Cela renverra une liste d’instances. Par exemple, localisons 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 également de rechercher plusieurs balises en fournissant une liste de balises. Par exemple, il est possible de récupérer 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