Travail 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"))
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"))
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)
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
Travail 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"))
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"))
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)
Merci pour vos commentaires !