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'))
    Résultat du code

    Explication du code :

    import requests importe la bibliothèque requests, utilisée pour effectuer des requêtes HTTP en Python. from bs4 import BeautifulSoup importe la classe BeautifulSoup depuis le module bs4, qui sert à analyser (parser) du contenu HTML ou XML.

    Scraping d'une page web
    url = 'https://www.example.com' définit l'URL de la page web cible à scraper. response = requests.get(url) envoie une requête HTTP GET à l’URL spécifiée et stocke la réponse dans la variable response.
    Analyse du contenu HTML
    soup = BeautifulSoup(response.text, 'html.parser') crée un objet BeautifulSoup à partir du contenu HTML de la réponse. Le second argument 'html.parser' précise le parseur à utiliser.
    Extraction des liens
    links = soup.find_all('a') extrait tous les éléments <a> (liens) de la page et les stocke dans la variable links sous forme de liste.
    Affichage des liens
    La boucle for link in links: parcourt chaque balise <a> trouvée. print(link.get('href')) affiche la valeur de l'attribut href de chaque lien, c'est-à-dire l'URL ciblée par le lien.