Maison > Article > développement back-end > Scrapy en action : exploration des données d'actualités Baidu
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 SpiderDans 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): passDans 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 itemDans 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émentDans 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.csvDans 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!