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 :
import requests
importe la bibliothèque requests, utilisée pour effectuer des requêtes HTTP en Python.from bs4 import BeautifulSoup
importe la classe BeautifulSoup depuis le modulebs4
, qui sert à analyser (parser) du contenu HTML ou XML.Scraping d'une page web
url = 'https://www.example.com'
définit l'URL de la page web cible à scraper.response = requests.get(url)
envoie une requête HTTP GET à l’URL spécifiée et stocke la réponse dans la variableresponse
.Analyse du contenu HTML
soup = BeautifulSoup(response.text, 'html.parser')
crée un objetBeautifulSoup
à partir du contenu HTML de la réponse. Le second argument'html.parser'
précise le parseur à utiliser.Extraction des liens
links = soup.find_all('a')
extrait tous les éléments<a>
(liens) de la page et les stocke dans la variablelinks
sous forme de liste.Affichage des liens
La bouclefor link in links:
parcourt chaque balise<a>
trouvée.print(link.get('href'))
affiche la valeur de l'attributhref
de chaque lien, c'est-à-dire l'URL ciblée par le lien.