Utilisez Scrapy Crawler pour analyser les données de nouveaux sites Web
À l'ère d'Internet, une grande quantité de données est collectée par les sites Web, et la manière d'utiliser ces données pour l'analyse et l'exploration est devenue un problème important. Cet article présentera l'utilisation du framework d'exploration Scrapy pour explorer de nouvelles données de sites Web et l'utilisation de Python pour l'analyse des données.
1. Scrapy Framework
Scrapy est un framework Python pour explorer les données de sites Web. Il peut extraire des données de sites Web de manière efficace, rapide et évolutive. Scrapy est un framework open source qui nous permet de créer facilement des modules Spider, Pipeline, DownloaderMiddleware et d'autres pour certaines tâches d'exploration de données et d'exploration à grande échelle, le framework Scrapy est très populaire.
2. Site Web de roman
Le site Web de roman exploré par cet article est "Biquge", qui est un site Web de lecture de romans en ligne gratuit. Dans ce site Web, le contenu du roman est organisé par chapitres, de sorte que le contenu du chapitre du roman doit être automatiquement exploré et les données peuvent être filtrées selon la classification du roman.
3. Conception du robot
Dans le framework Scrapy, le robot est un module très important. Il peut explorer les données de différents sites Web ou de différentes pages en définissant plusieurs robots. Le robot écrit dans cet article est principalement divisé en deux parties : la liste des romans et le contenu du chapitre du roman.
La liste des romans fait référence à la classification, au nom, à l'auteur, au statut et à d'autres informations du roman. Dans le site Web « Biquge », chaque catégorie de romans a une sous-page correspondante. Par conséquent, lors de l'exploration de la liste des romans, explorez d'abord l'URL de la catégorie de roman, puis parcourez la page de catégorie pour obtenir les informations de chaque roman.
Lors de l'exploration du contenu du chapitre d'un roman, l'essentiel est d'obtenir le répertoire des chapitres de chaque roman et de regrouper le contenu du répertoire des chapitres dans l'ordre. Dans le site Web « Biquge », le répertoire de chapitre de chaque roman a une URL correspondante, il vous suffit donc d'obtenir l'URL du répertoire de chapitre de chaque roman, puis d'obtenir le contenu du chapitre un par un.
4. Implémentation du robot
Avant d'implémenter le robot, vous devez installer le framework Scrapy et créer un projet Scrapy. Dans le projet Scrapy, chaque robot doit définir les parties suivantes :
Chaque robot a un nom unique pour distinguer les différents robots. Dans cet article, nous nommons le robot « roman_spider ».
URL de démarrage, qui consiste à définir le point de départ du robot.
start_urls = ['http://www.biquge.info/']
Méthode d'analyse Crawler, cette méthode analysera le contenu renvoyé par chaque URL dans start_urls et en extraira des informations utiles.
Dans cette méthode, analysez d'abord la page de liste des romans, extrayez le nom, l'auteur, le statut et les informations URL de chaque roman, et transmettez ces informations à la méthode d'analyse suivante via l'objet Request.
def parse(self, response): # Get novel classifications classifications = response.xpath('//div[@class="nav"]/ul/li') for classification in classifications: url = classification.xpath('a/@href').extract_first() name = classification.xpath('a/text()').extract_first() # Get novels in classification yield scrapy.Request(url, callback=self.parse_classification, meta={'name': name})
Dans la page du sous-niveau, obtenez le contenu du roman, le nom du chapitre et le contenu du chapitre dans l'ordre. Et transmettez le titre du roman, le nom du chapitre et les informations sur le contenu du chapitre via Item.
def parse_chapter(self, response): item = NovelChapter() item['novel_name'] = response.meta['novel_name'] item['chapter_name'] = response.meta['chapter_name'] item['chapter_content'] = response.xpath('//div[@id="content"]/text()').extract() yield item
5. Analyse des données
Après avoir obtenu les données, nous pouvons utiliser les bibliothèques Python et Pandas pour analyser les nouvelles données obtenues. Le code suivant peut effectuer une analyse des données Pandas sur la nouvelle liste.
import pandas as pd # Load CSV data into dataframe df = pd.read_csv('./novel.csv') # Display novel counts by author's name df.groupby('author_name')[['novel_name']].count().sort_values('novel_name', ascending=False)
6. Résumé
Scrapy est un puissant framework d'exploration qui peut facilement explorer les données des sites Web. Cet article utilise un exemple de site Web de lecture de romans pour présenter comment utiliser le framework Scrapy pour capturer le contenu de la classification et des chapitres de romans, et utiliser les bibliothèques Python et Pandas pour analyser les données capturées. Cette technologie est largement utilisée pour explorer les données d’autres sites Web, telles que les actualités, les informations sur les produits, les réseaux sociaux, etc.
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!