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
Copier après la connexion
Étape 2 : Créer un projet Scrapy
Créer un projet Scrapy via la commande suivante :
scrapy startproject baiduNews
Copier après la connexion
#🎜 🎜#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
Copier après la connexion
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
Copier après la connexion
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()
Copier après la connexion
É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
Copier après la connexion
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!