Maison  >  Article  >  développement back-end  >  Scrapy en action : exploration des données d'actualités Baidu

Scrapy en action : exploration des données d'actualités Baidu

WBOY
WBOYoriginal
2023-06-23 08:50:091750parcourir

Scrapy en action : explorer les données d'actualité de Baidu

Avec le développement d'Internet, le principal moyen permettant aux utilisateurs d'obtenir des informations est passé des médias traditionnels à Internet, et les gens s'appuient de plus en plus sur Internet. Internet pour obtenir des informations sur l'actualité. Pour les chercheurs ou les analystes, une grande quantité de données est nécessaire à l’analyse et à la recherche. Par conséquent, cet article explique comment utiliser Scrapy pour explorer les données d'actualités Baidu.

Scrapy est un framework d'exploration Python open source qui peut explorer les données de sites Web rapidement et efficacement. Scrapy fournit de puissantes fonctions d'analyse et d'exploration de pages Web, ainsi qu'une bonne évolutivité et un haut degré de personnalisation.

Étape 1 : Installer Scrapy

Avant de commencer, vous devez installer Scrapy et quelques autres bibliothèques. L'installation peut être complétée via la commande suivante :

pip install scrapy
pip install requests
pip install bs4

Étape 2 : Créer un projet Scrapy

Créer un projet Scrapy via la commande suivante :

scrapy startproject baiduNews
#🎜 🎜#In this Une fois la commande exécutée, un dossier nommé baiduNews sera créé dans le répertoire courant, qui contient la structure initiale d'un projet Scrapy.

Étape 3 : Écrire Spider

Dans Scrapy, Spider est un processeur utilisé pour explorer le contenu Web. Nous devons écrire un Spider pour obtenir des données du site Web Baidu News. Tout d’abord, nous devons créer un dossier spiders dans le répertoire racine du projet et y créer un fichier Python adapté au modèle Spider.

import scrapy

class BaiduSpider(scrapy.Spider):
    name = "baidu"
    start_urls = [
        "http://news.baidu.com/"
    ]

    def parse(self, response):
        pass

Dans le code ci-dessus, nous avons d'abord importé la bibliothèque Scrapy et créé une classe appelée BaiduSpider. Dans la classe, nous définissons une variable start_urls, qui est une liste contenant les URL de Baidu News. La méthode parse est la fonction principale pour effectuer la capture de données. Ici, nous définissons simplement une fonction vide. Maintenant, nous devons définir un modèle pour obtenir les données d'actualité.

import scrapy
from baiduNews.items import BaidunewsItem
from bs4 import BeautifulSoup

class BaiduSpider(scrapy.Spider):
    name = "baidu"
    start_urls = [
        "http://news.baidu.com/"
    ]

    def parse(self, response):
        soup = BeautifulSoup(response.body, "html.parser")

        results = soup.find_all("div", class_="hdline_article_tit")
        for res in results:
            item = BaidunewsItem()
            item["title"] = res.a.string.strip()
            item["url"] = res.a.get("href").strip()
            item["source"] = "百度新闻"
            yield item

Dans le code ci-dessus, nous avons trouvé tous les éléments de classe hdline_article_tit, qui font la une de Baidu News. Nous utilisons ensuite BeautifulSoup pour analyser la page et créer un objet de classe BaidunewsItem dans une boucle. Enfin, nous renvoyons les données via l'instruction de rendement.

Étape 4 : Définir l'élément

Dans Scrapy, l'élément est utilisé pour définir la structure des données capturées. Nous devons définir un modèle d'élément dans le fichier items.py du projet.

import scrapy

class BaidunewsItem(scrapy.Item):
    title = scrapy.Field()
    url = scrapy.Field()
    source = scrapy.Field()

Étape 5 : Démarrer Spider et générer des données

Il suffit d'exécuter la commande suivante pour démarrer Spider et générer des données :

scrapy crawl baidu -o baiduNews.csv

Dans cette commande Une fois l'exécution terminée, un fichier nommé baiduNews.csv sera créé dans le répertoire racine du projet, contenant toutes les données d'actualité analysées.

Résumé

Avec Scrapy, nous pouvons obtenir rapidement et efficacement les données d'actualités Baidu et les enregistrer localement. Scrapy a une bonne évolutivité et prend en charge la sortie dans plusieurs formats de données. Cet article ne présente qu'un simple scénario d'application de Scrapy, mais Scrapy a encore de nombreuses fonctions puissantes qui attendent que nous les explorions.

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!

Déclaration:
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