Maison >développement back-end >Tutoriel Python >Le robot d'exploration Scrapy réalise la magnifique acquisition de données d'images et le classement des partages populaires de Qianku.com
Scrapy Crawler réalise l'acquisition de belles données d'images et le classement de partage populaire de Qianku.com
Avec la popularité d'Internet, la demande d'images des gens a progressivement augmenté et de beaux sites Web d'images ont également vu le jour. Qianku.com est une plate-forme spécialisée dans la fourniture d'images et de ressources matérielles haute définition. Il existe un grand nombre d'images exquises, qui peuvent être téléchargées gratuitement par les utilisateurs et peuvent également remplacer les ressources artistiques commerciales. Cependant, télécharger manuellement ces belles images prend du temps et est inefficace. Par conséquent, cet article explique comment utiliser le robot d'exploration Scrapy pour obtenir de belles données d'images et classer les partages populaires sur Qianku.com.
1. Installer Scrapy
Avant d'installer Scrapy, nous devons au préalable installer l'environnement Python. Dans l'environnement Python, Scrapy peut être installé via la commande pip install scrapy.
2. Créez un projet Scrapy
Ouvrez le terminal de ligne de commande, entrez le répertoire dans lequel vous souhaitez créer le projet et entrez la commande scrapy startproject qkspider pour créer un projet Scrapy nommé "qkspider" dans le répertoire.
3. Créez un robot
Entrez dans le répertoire du projet et entrez la commande scrapy genspider qk qkpic.com pour créer un robot nommé "qk" dans le dossier spiders.
4. Écrivez le code
1. Modifiez le fichier settings.py
Tout d'abord, ouvrez le fichier settings.py dans le répertoire qkspider et ajoutez-y le code suivant :
ITEM_PIPELINES = {'qkspider.pipelines.QkspiderPipeline':100,}
Il s'agit de stocker les belles données d'image obtenues. dans la base de données.
2. Modifiez le fichier pipelines.py
Ensuite, nous devons ouvrir le fichier pipelines.py dans le répertoire qkspider et y ajouter le code suivant :
import pymongo class QkspiderPipeline(object): def __init__(self): client = pymongo.MongoClient("mongodb://localhost:27017/") db = client['qkdb'] self.collection = db['qkpic'] def process_item(self, item, spider): self.collection.insert(dict(item)) return item
Il s'agit de stocker les belles données d'image obtenues dans MongoDB.
3. Modifiez le fichier items.py
Ouvrez le fichier items.py dans le répertoire qkspider et ajoutez-y le code suivant :
import scrapy class QkspiderItem(scrapy.Item): title = scrapy.Field() img_url = scrapy.Field() share_num = scrapy.Field()
Il s'agit de définir le type de données à obtenir.
4. Modifiez le fichier qk.py
Ouvrez le fichier qk.py sous le dossier spiders et ajoutez-y le code suivant :
import scrapy from qkspider.items import QkspiderItem class QkSpider(scrapy.Spider): name = "qk" allowed_domains = ["qkpic.com"] start_urls = ["http://www.qkpic.com/"] def parse(self, response): items = [] pic_lists = response.xpath('//div[@class="index_mianpic"]/ul/li') for i, pic in enumerate(pic_lists): item = QkspiderItem() item['title'] = pic.xpath('./a/@title').extract_first() item['img_url'] = pic.xpath('./a/img/@src').extract_first() item['share_num'] = int(pic.xpath('./span/em/text()').extract_first()) items.append(item) return items
Il s'agit de définir le type de règles pour explorer les belles données d'image du Qianku. site Web, et ajoutez Les données sont stockées dans MongoDB. Dans ce code, nous spécifions les informations sur la belle image à obtenir, y compris le titre de la belle image, l'adresse URL et le volume de partage.
5. Exécutez le robot d'exploration
Maintenant, nous pouvons exécuter le programme d'exploration que nous venons d'écrire dans le terminal de ligne de commande. Entrez la commande scrapy crawl qk dans le répertoire qkspider pour exécuter le programme dans le fichier qk.py et commencez à explorer les belles données d'image du site Web Qianku et à les stocker dans MongoDB.
6. Obtenir le classement des partages populaires
Afin d'obtenir le classement des partages populaires du site Web Qianku, nous devons obtenir l'URL de la page de liste populaire et ajouter le code suivant au fichier qk.py :
class QkSpider(scrapy.Spider): name = "qk" allowed_domains = ["qkpic.com"] start_urls = ["http://www.qkpic.com/", "http://www.qkpic.com/top/"] def parse(self, response): if response.url.startswith('http://www.qkpic.com/top/'): items = self.parse_rank_list(response) else: items = self.parse_pic_info(response) return items # 爬取热门榜单信息 def parse_rank_list(self, response): items = [] pic_lists = response.xpath('//div[@class="topcont"]/ul/li') for i, pic in enumerate(pic_lists): item = QkspiderItem() item['title'] = pic.xpath('./a/@title').extract_first() item['img_url'] = pic.xpath('./a/img/@src').extract_first() item['share_num'] = int(pic.xpath('./div[1]/i[2]/text()').extract_first()) items.append(item) return items
Dans celui-ci code, nous attribuons des start_urls à la page d'accueil du site Web et à la page de liste populaire, et ajoutons une nouvelle fonction parse_rank_list.
7. Résumé
Cet article présente comment utiliser le framework d'exploration Scrapy pour explorer les belles données d'image du site Web Qianku. Au cours du processus d'exploration, nous définissons les types de données dont nous avons besoin pour obtenir et utilisons MongoDB pour stocker les données obtenues. En outre, cet article explique également comment obtenir la liste de classement de partage populaire du site Web Qianku pour étendre les fonctionnalités du programme d'exploration.
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!