Maison > développement back-end > Tutoriel Python > Web Scraping simplifié : extraire les titres d'articles avec BeautifulSoup

Web Scraping simplifié : extraire les titres d'articles avec BeautifulSoup

DDD
Libérer: 2024-12-20 13:23:09
original
340 Les gens l'ont consulté

Web Scraping Simplified: Extracting Article Titles with BeautifulSoup

Web Scraping simplifié : extraire les titres d'articles avec BeautifulSoup

Introduction

Le Web scraping est une compétence essentielle pour les développeurs qui ont besoin de collecter efficacement des données sur le Web. Dans ce didacticiel, nous allons parcourir un simple script Python pour extraire les titres d'articles d'un site Web d'actualités à l'aide de BeautifulSoup, une bibliothèque puissante pour analyser HTML et XML.

À la fin de ce didacticiel, vous disposerez d'un script qui extrait et affiche les titres des articles d'une page Web en quelques lignes de code seulement !


Conditions préalables

Avant de plonger dans le code, assurez-vous que Python est installé sur votre système. Vous aurez également besoin des bibliothèques suivantes :

  1. requêtes : pour effectuer des requêtes HTTP et récupérer le contenu d'une page Web.
  2. BeautifulSoup (bs4) : Pour analyser et extraire des données du HTML.

Vous pouvez installer ces bibliothèques en utilisant pip :

pip install requests beautifulsoup4
Copier après la connexion

 Le problème

Disons que vous souhaitez suivre les dernières nouvelles d'un site Web comme BBC News. Au lieu de visiter le site manuellement, vous pouvez automatiser cette tâche avec Python et récupérer les titres des articles pour analyse ou affichage.


Le code

Voici le script Python complet pour récupérer les titres des articles :

import requests
from bs4 import BeautifulSoup

def fetch_article_titles(url):
    try:
        # Step 1: Send an HTTP GET request to fetch the webpage
        response = requests.get(url)
        response.raise_for_status()  # Ensure the request was successful

        # Step 2: Parse the webpage content with BeautifulSoup
        soup = BeautifulSoup(response.text, "html.parser")

        # Step 3: Use a CSS selector to find all article titles
        titles = []
        for heading in soup.select("h3"):  # Most news sites use <h3> tags for article titles
            titles.append(heading.get_text(strip=True))  # Extract and clean the text

        return titles
    except requests.exceptions.RequestException as e:
        print(f"Error fetching the webpage: {e}")
        return []
    except Exception as e:
        print(f"Error during parsing: {e}")
        return []

# Example usage: Fetching titles from BBC News
url = "https://www.bbc.com/news"
titles = fetch_article_titles(url)

# Print the article titles
print("Latest Article Titles:")
for i, title in enumerate(titles, 1):
    print(f"{i}. {title}")

Copier après la connexion

Comment ça marche

  1. Faire la demande :

    • Nous utilisons la méthode request.get pour récupérer le contenu de la page Web cible.
    • La méthode raise_for_status garantit que toutes les erreurs HTTP (comme 404 ou 500) sont détectées tôt.
  2. Analyser le contenu :

    • La bibliothèque BeautifulSoup analyse le contenu HTML, ce qui facilite la navigation et l'extraction des éléments à l'aide des sélecteurs CSS.
  3. Extraire les titres :

    • La méthode soup.select récupère tous les fichiers

      éléments, qui contiennent généralement des titres d'articles sur les sites d'actualités.

    • La méthode get_text extrait le texte propre de chaque élément.

Exemple de sortie

Lorsque vous exécutez le script, vous obtiendrez une liste claire des titres d'articles :

Latest Article Titles:
1. Israel-Gaza conflict: Latest updates
2. Global markets fall amid economic uncertainty
3. AI advancements raise ethical questions
4. Football: Premier League results
...
Copier après la connexion

Personnalisation du script

Vous pouvez modifier ce script pour récupérer d'autres types de contenu ou cibler différents sites Web. Voici quelques ajustements que vous pouvez essayer :

  • Modifier le sélecteur CSS :
    Remplacez « h3 » par un sélecteur plus spécifique (par exemple, « div.article-title ») si le site Web cible a une structure différente.

  • Grattez les données supplémentaires :
    Extrayez les URL, les dates de publication ou les résumés en sélectionnant les éléments et attributs HTML pertinents.


Conseils pour le grattage éthique

  1. Respectez les conditions d'utilisation du site Web :
    Vérifiez toujours le fichier robots.txt ou les conditions d'utilisation d'un site Web pour vous assurer que le scraping est autorisé.

  2. Taux Limitez vos demandes :
    Évitez de surcharger le serveur en ajoutant un délai entre les requêtes à l'aide de la méthode time.sleep.

  3. Gérer les modifications avec élégance :
    Les sites Web peuvent modifier leur structure, brisant ainsi votre script. Soyez toujours prêt à déboguer et mettre à jour votre code.


Conclusion

En quelques lignes de code Python, nous avons créé un script simple mais puissant pour extraire les titres d'articles d'un site Web d'actualités. BeautifulSoup facilite la navigation et l'extraction des données dont vous avez besoin, tandis que les requêtes gèrent les interactions HTTP.

Le Web scraping peut ouvrir une multitude d'opportunités, de la surveillance des tendances à l'automatisation de la collecte de données. N'oubliez pas de gratter de manière responsable !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal