1. Chargement et parsing des documents HTML
Aperçu rapide des fonctionnalités
La bibliothèque requests
— c'est notre "messager",
qui part en mission pour récupérer le code HTML des pages web. Elle
effectue des requêtes HTTP et livre les pages comme un livreur
de pizza, sauf qu'il n'y a ni "Margarita" ni boîtes.
BeautifulSoup
, quant à elle, c'est notre
"chef cuistot", qui va facilement décomposer le HTML reçu en
ingrédients (balises, attributs et texte), pour qu'on puisse les
utiliser. Elle nous aide à trouver les éléments nécessaires et
à sauvegarder toutes les informations importantes.
Utilisation de la bibliothèque requests
Maintenant, on est prêts à faire notre première requête HTTP et à obtenir
le code HTML d'une page. Pour s'entraîner, chargeons la page
example.com
. Ce site est un vrai dinosaure d'Internet
et parfait pour débuter.
import requests
url = 'http://example.com'
response = requests.get(url)
# Vérifions si tout est en ordre
if response.status_code == 200:
print("Page chargée avec succès!")
else:
print("Un problème est survenu. Code d'erreur:", response.status_code)
Ce programme enverra une requête vers l'URL et affichera un succès ou une erreur selon la réponse. Si tout va bien, on aura entre les mains le code HTML de la page sous forme de texte.
Suivi des codes d'erreur
Si tu automatises le parsing, tu tomberas souvent sur des pages qui devraient se charger mais qui ne se chargent pas. Donc, analyser les codes d'erreur est une partie obligatoire d'un projet qui parse plus que quelques pages.
Tout ça parce que les propriétaires de sites n'aiment pas trop qu'on parse leurs données. Premièrement, ça met une charge sur le site (quand on parse des milliers de pages en même temps). Deuxièmement, ce sont leurs données et ils en vivent. Il y a plein de façons de contrer le parsing : CAPTCHA, CloudFlare, etc.
Pour le business, c'est idéal quand tu peux parser tous tes concurrents, mais qu'aucun d'eux ne peut te parser. Une sorte de guerre froide.
Utilisation de BeautifulSoup pour parser HTML
Une fois qu'on a le code HTML, on peut commencer à l'étudier avec
BeautifulSoup
. C'est comme ouvrir un livre et lire son contenu :
from bs4 import BeautifulSoup
# On passe le contenu du code HTML à BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# Jetons un œil à l'intérieur
print(soup.prettify())
La méthode prettify()
formatte joliment le code HTML,
pour que tu puisses l'étudier. Dans le prochain cours, on commencera
à fouiller ce HTML, comme des enfants qui jouent dans un bac à sable.
Et on rentrera à la maison fatigués, sales, mais heureux :)
3. Pratique : chargement et analyse de HTML
Pour renforcer la compréhension, faisons un exercice pratique. On va essayer
d'extraire le titre et la description de la page example.com
.
Pour cela, on utilisera nos connaissances en HTML et notre nouvelle
connaissance BeautifulSoup.
Extraction de données
# Extraction du titre de la page
title = soup.title.string
print("Titre de la page:", title)
# Extraction du titre principal (h1)
main_heading = soup.h1.string
print("Titre principal:", main_heading)
# Extraction du contenu textuel d'un paragraphe
paragraph = soup.find('p').text
print("Premier paragraphe:", paragraph)
Dans cet exemple, on utilise les attributs title
,
h1
, et la méthode find()
, pour extraire
les morceaux d'information nécessaires de la page. On devient
des cyber-détectives, étudiant des indices sur une scène de crime !
4. Erreurs typiques
Certainement, en travaillant avec le web scraping, tu vas rencontrer
des erreurs typiques, qui peuvent inclure une mauvaise gestion des
requêtes HTTP, une extraction incorrecte des données ou des erreurs
de parsing HTML. Développer des scripts robustes et fiables demande
de la patience et de la pratique. Par exemple, vérifie toujours
le code de statut (response.status_code
) pour t'assurer
que ta requête est exécutée avec succès. Une mauvaise utilisation
des méthodes find()
et find_all()
peut
mener à des erreurs si tu ne prends pas en compte la structure
des pages HTML. Analyse toujours le HTML avant de commencer le parsing.
Le web scraping a plein d'applications pratiques : de la collecte de données pour des analyses au suivi automatique des prix des produits. Ces connaissances peuvent être utiles lors d'entretiens, où on peut te demander des exemples de code de projet. En pratique, par exemple, les marketeurs utilisent le scraping pour surveiller les prix des concurrents, et les développeurs — pour intégrer des sites externes.
Les connaissances en web scraping te seront aussi utiles pour traiter des informations pour des agrégateurs d'actualités ou des systèmes analytiques. Tu pourras automatiser des tâches répétitives en créant des scripts qui collectent eux-mêmes des données de différentes sources. Continuons à développer notre application virtuelle et sentons-nous comme de vrais maîtres du web !
GO TO FULL VERSION