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 :

    • Importation : Le module BeautifulSoup est importé à partir de la bibliothèque bs4. On utilise aussi requests pour envoyer des requêtes HTTP.
    • Récupération de la page : On envoie une requête GET à l'URL de la page à scraper avec requests.get.
    • Parsing : Le contenu de la page est ensuite analysé avec BeautifulSoup(response.text, 'html.parser'), où response.text est le HTML brut de la page.
    • Extraction : On utilise la méthode find_all pour récupérer tous les éléments <a> (liens) de la page.
    • Affichage : On affiche les URL des liens en accédant à l'attribut href de chaque balise <a>.