CodeGym /Cours Java /Python SELF FR /Parsing HTML avec BeautifulSoup

Parsing HTML avec BeautifulSoup

Python SELF FR
Niveau 31 , Leçon 2
Disponible

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.

Python

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 :

Python

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

Python

# 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 !

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION