Scraper une page web avec BeautifulSoup
Le web scraping consiste à extraire des données d’une page web en analysant son code HTML. BeautifulSoup est une bibliothèque Python qui facilite cette tâche en permettant de naviguer dans la structure HTML d’une page et d’en extraire des informations spécifiques (textes, images, liens, etc.). Pour scraper une page web, vous devez d’abord télécharger son contenu avec requests, puis utiliser BeautifulSoup pour parser le HTML et sélectionner les éléments souhaités à l’aide de méthodes comme find() ou find_all(). Cette approche est couramment utilisée pour collecter des données publiques à partir de sites web pour des applications d’analyse ou d’automatisation.
Fonctions :
-
BeautifulSoup (du module bs4)
La fonction BeautifulSoup est utilisée pour parser des pages HTML et XML en Python. Elle permet d'extraire des données à partir de contenu web et de manipuler des documents de manière élégante.
Importation :
from bs4 import BeautifulSoup import requests
Attributs :
Paramètre Description markup
Contenu HTML ou XML à parser, soit sous forme de chaîne de caractères (str), soit sous forme d'un objet file
.features
Type de parseur à utiliser (optionnel). Par défaut, BeautifulSoup choisit le meilleur parseur disponible (par exemple html.parser
).builder
Un constructeur personnalisé pour parser le contenu (optionnel). Exemple de code :
import requests from bs4 import BeautifulSoup # Exemple de scraping d'une page web url = 'https://www.example.com' response = requests.get(url) # Parsing de la page HTML soup = BeautifulSoup(response.text, 'html.parser') # Extraction de tous les liens présents dans la page links = soup.find_all('a') # Affichage des liens for link in links: print(link.get('href'))
Explication du code :
- Importation : Le module
BeautifulSoup
est importé à partir de la bibliothèquebs4
. On utilise aussirequests
pour envoyer des requêtes HTTP. - Récupération de la page : On envoie une requête GET à l'URL de la page à scraper avec
requests.get
. - Parsing : Le contenu de la page est ensuite analysé avec
BeautifulSoup(response.text, 'html.parser')
, oùresponse.text
est le HTML brut de la page. - Extraction : On utilise la méthode
find_all
pour récupérer tous les éléments<a>
(liens) de la page. - Affichage : On affiche les URL des liens en accédant à l'attribut
href
de chaque balise<a>
.
- Importation : Le module