BeautifulSoup – Parsing HTML avec Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à BeautifulSoup

BeautifulSoup est l'une des bibliothèques Python les plus populaires et les plus puissantes pour le parsing de documents HTML et XML. Elle offre une interface simple et intuitive pour naviguer, rechercher et modifier l'arborescence des éléments HTML. Les développeurs l'utilisent largement pour le web scraping, l'extraction de données structurées à partir de pages web, l'analyse de contenu de sites et l'automatisation de la collecte d'informations.

Qu'est-ce que BeautifulSoup et pourquoi l'utiliser ?

BeautifulSoup fonctionne en créant une structure arborescente à partir d'un document HTML ou XML, ce qui permet de trouver, extraire et modifier facilement les éléments. La bibliothèque est particulièrement efficace avec du HTML mal structuré, corrigeant automatiquement les erreurs de balisage pour créer une arborescence valide.

Principaux cas d'utilisation :

  • Extraction de données de sites web pour analyse
  • Parsing de flux d'actualités et de flux RSS
  • Automatisation de la collecte d'informations sur les produits dans les boutiques en ligne
  • Analyse de la structure des pages web
  • Nettoyage et traitement de contenu HTML

Avantages et fonctionnalités de la bibliothèque

Flexibilité et simplicité d'utilisation

BeautifulSoup propose une API intuitive qui permet de travailler avec des documents HTML comme avec des objets Python classiques. Vous pouvez accéder aux éléments par leurs balises, attributs, classes et autres caractéristiques.

Prise en charge de plusieurs parseurs

La bibliothèque prend en charge plusieurs parseurs, chacun avec ses spécificités :

  • html.parser — parseur intégré à Python (aucune dépendance supplémentaire requise)
  • lxml — parseur rapide et fiable avec prise en charge de XPath
  • html5lib — parseur offrant une compatibilité maximale avec le comportement des navigateurs

Traitement du HTML mal formé

BeautifulSoup corrige automatiquement les problèmes de balisage HTML, tels que les balises non fermées, l'imbrication incorrecte des éléments et autres erreurs, ce qui la rend idéale pour travailler avec des pages web réelles.

Intégration avec les bibliothèques populaires

Elle s'intègre facilement avec requests pour le téléchargement de pages web, urllib pour la gestion des URL, selenium pour le traitement de contenu dynamique, et d'autres outils de l'écosystème Python.

Prise en charge des expressions régulières

Possibilité d'utiliser des expressions régulières pour des requêtes de recherche complexes et le filtrage d'éléments par motifs.

Extraction et modification de données

Ensemble complet d'outils pour extraire du texte, des attributs, éditer des éléments HTML et créer de nouveaux éléments.

Installation et configuration de base

Installation de la bibliothèque principale

pip install beautifulsoup4

Installation des parseurs supplémentaires

Pour utiliser le parseur rapide lxml :

pip install lxml

Pour une compatibilité maximale avec les navigateurs :

pip install html5lib

Import de base

from bs4 import BeautifulSoup
import requests

Création d'un objet BeautifulSoup

Chargement d'un document HTML à partir d'une chaîne

html = """
<html>
<head><title>Exemple de page</title></head>
<body>
    <div class="content">
        <h1>Titre</h1>
        <p>Texte du paragraphe</p>
    </div>
</body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')

Chargement de HTML avec requests

import requests
from bs4 import BeautifulSoup

url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

Cha

Recommendations