Extraction des données des articles de blog par web scraping

Pour extarire les informations des articles d'un blog, nous utilisons Python avec les bibliothèques requests et BeautifulSoup. L'objectif est de scraper la page d'accueil du blog « Tout le monde est Spider-Man » à l'URL https://spidermen.cn/ afin d'obtenir le titre, la date de publication et le lien des quatre premiers articles.

Approche technique

La méthode consiste à envoyer une requête HTTP GET pour récupérer le contenu HTML de la page, puis à analyser ce contenu pour localiser les en-têtes d'articles. Chaque article est identifié par un élément header avec la classe CSS entry-header. Ensuite, nous extrayons les données pertinenets en ciblant les balises HTML appropriées.

Exemple de code en Python


import requests
from bs4 import BeautifulSoup

# Définir l'URL cible
cible_url = 'https://spidermen.cn/'

# Effectuer la requête et obtenir le contenu de la page
requete = requests.get(cible_url)
contenu_html = requete.text

# Analyser le HTML avec BeautifulSoup
page_parsee = BeautifulSoup(contenu_html, 'html.parser')

# Localiser tous les en-têtes d'articles
en_tetes_articles = page_parsee.find_all('header', class_='entry-header')

# Parcourir chaque en-tête pour extraire les informations
for en_tete in en_tetes_articles:
    titre = en_tete.find('h2').get_text()
    date_publication = en_tete.find('time', class_='entry-date published')['datetime']
    lien_article = en_tete.find('a')['href']
    
    # Afficher les données extraites
    print(f'Titre : {titre}')
    print(f'Date : {date_publication}')
    print(f'Lien : {lien_article}')
    print('---')

Sortie attendue

Le script produit les informations pour chaque article sous forme de liste, comme illustré ci-dessous (les données peuvent varier selon le contenu du blog) :


Titre : Futur en marche (IV) — Parcours d'apprentissage Python avancé
Date : 2018-12-18T11:17:37+00:00
Lien : https://wordpress-edu-3autumn.localprod.forc.work/all-about-the-future_04/
---
Titre : Futur en marche (III) — Égalité des chances
Date : 2018-12-18T11:12:02+00:00
Lien : https://wordpress-edu-3autumn.localprod.forc.work/all-about-the-future_03/
---
Titre : Futur en marche (II) — Embrasser l'IA
Date : 2018-12-18T10:50:33+00:00
Lien : https://wordpress-edu-3autumn.localprod.forc.work/all-about-the-future_02/
---
Titre : Futur en marche (I) — Révolution technologique
Date : 2018-12-18T10:23:16+00:00
Lien : https://wordpress-edu-3autumn.localprod.forc.work/all-about-the-future_01/
---

Le code peut être adopté en modifiant les sélecteurs CSS ou la logique d'extraction pour d'autres structures de pages web.

Étiquettes: Python BeautifulSoup requests web scraping HTML parsing

Publié le 7 juin à 04h09