1. Des produits
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

Bibliothèque Python Open Source pour analyser le HTML/XML et extraire des données

Beautiful Soup est une bibliothèque Python open source de premier plan qui analyse le HTML/XML désordonné, extrait le texte/les liens, navigue dans l'arbre et alimente les flux de travail modernes de scraping web.

Qu'est-ce que Beautiful Soup ?

Le scraping web est devenu une compétence essentielle pour les data scientists, les développeurs et les chercheurs qui doivent extraire des informations précieuses des sites web. Beautiful Soup se présente comme l’une des bibliothèques Python les plus populaires et conviviales pour analyser des documents HTML et XML. Depuis sa création en 2004, cet outil puissant a fait gagner d'innombrables heures aux programmeurs sur les projets de scraping web. L’API intuitive de la bibliothèque, sa documentation excellente et le soutien actif de la communauté garantissent que les débutants comme les développeurs expérimentés peuvent extraire des données web efficacement.

Beautiful Soup est une bibliothèque Python spécialement conçue pour extraire des données à partir de fichiers HTML et XML. C’est une puissante bibliothèque Python qui permet aux programmeurs d’économiser des heures ou des jours de travail sur les projets de scraping web depuis 2004. Avec seulement quelques lignes de code, vous pouvez effectuer des requêtes complexes telles que la simplicité et la facilité d’utilisation, trouver tous les liens, extraire le contenu texte, la conversion automatique d’encodage, la flexibilité des analyseurs, une gestion robuste des erreurs, la recherche et l’extraction de liens à partir de pages web et bien plus encore.

La bibliothèque Beautiful Soup transforme la tâche souvent frustrante d’extraction de données à partir de documents HTML et XML en un processus Pythonique simple, convertissant le contenu web mal structuré en arbres d’analyse soigneusement organisés que vous pouvez parcourir et rechercher avec des méthodes simples. Ce qui prenait traditionnellement des heures de codage manuel peut être réalisé en quelques minutes avec Beautiful Soup. Elle reste la référence de l’industrie pour les développeurs Python qui s’aventurent dans le web scraping. Sa simplicité, combinée à la puissance de différents analyseurs, en fait un choix imbattable pour extraire des données de sites web statiques.

Previous Next

Premiers pas avec Beautiful Soup

La méthode recommandée et la plus simple pour installer Beautiful Soup est d'utiliser pip. Veuillez utiliser la commande suivante pour une installation fluide.

Installez la bibliothèque Beautiful Soup via pip

pip install beautifulsoup4 

Vous pouvez également l'installer manuellement ; téléchargez les derniers fichiers de version directement depuis la page web Beautiful Soup .

Travailler avec plusieurs analyseurs

La bibliothèque Beautiful Soup ne réalise pas elle-même tout le parsing — elle repose plutôt sur des analyseurs matures tels que le html.parser intégré de Python, le parseur rapide lxml et le html5lib, qui se comporte comme un navigateur. Selon les besoins, vous pouvez privilégier la vitesse ou la conformité aux normes. Cette architecture vous offre la flexibilité de choisir l'analyseur qui correspond le mieux à vos exigences, d'échanger la vitesse de parsing contre la flexibilité, d'essayer différentes stratégies de parsing sans modifier votre code Beautiful Soup, etc. Le code simple suivant montre comment les développeurs peuvent utiliser différents analyseurs avec Beautiful Soup.

Comment utiliser plusieurs analyseurs pour analyser des documents HTML dans les applications Python ?

# Using different parsers with Beautiful Soup
html_doc = "

Contenu d'exemple

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

Extraction de liens depuis des pages Web

Le scraping de liens est une tâche courante de web scraping, particulièrement utile pour créer des crawlers web. La bibliothèque open source Beautiful Soup inclut le support du chargement de pages web et de l'extraction de liens à l'intérieur des applications Python. L'exemple de code simple suivant montre comment récupérer une page web en direct à l'aide de la bibliothèque requests, puis extraire toutes les balises d'ancrage dans les applications Python.

Comment extraire des liens à partir de pages Web en utilisant Python ?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

Recherche d'éléments HTML spécifiques

L'un des plus grands atouts de Beautiful Soup est la façon naturelle dont il vous permet de rechercher du HTML, presque comme lire de l'anglais simple. Au lieu de gérer des API DOM complexes, vous décrivez ce que vous voulez, et Beautiful Soup le trouve pour vous. Supposons que vous souhaitiez trouver tous les liens sur une page. Vous pouvez utiliser la méthode find_all comme le montre l'exemple de code suivant. La méthode renvoie une liste de toutes les balises de lien. Nous parcourons ensuite cette liste pour extraire l'URL et le texte afin d'obtenir le nom du lien visible à l'aide de l'API Python.

Comment rechercher et extraire un élément HTML spécifique d’une page Web via l’API Python ?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

Gestion automatique de l'encodage

L'une des fonctionnalités les plus pratiques de Beautiful Soup est sa conversion automatique d'encodage. La bibliothèque convertit automatiquement les documents entrants en Unicode et les documents sortants en UTF-8, éliminant ainsi l'un des maux de tête les plus courants du scraping web. Veuillez vous rappeler que vous n'avez besoin de vous préoccuper des encodages que lorsque le document ne spécifie pas d'encodage, car Beautiful Soup ne peut pas détecter automatiquement l'encodage. Dans ces rares cas, il suffit de spécifier manuellement l'encodage d'origine.

 Français