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

Le robot d'exploration Scrapy réalise la magnifique acquisition de données d'images et le classement des partages populaires de Qianku.com

王林
王林original
2023-06-22 13:41:451204parcourir

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!

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