Heim >Backend-Entwicklung >Python-Tutorial >Der Scrapy-Crawler erkennt die schöne Bilddatenerfassung und das beliebte Sharing-Ranking von Qianku.com

Der Scrapy-Crawler erkennt die schöne Bilddatenerfassung und das beliebte Sharing-Ranking von Qianku.com

王林
王林Original
2023-06-22 13:41:451185Durchsuche

Scrapy-Crawler erkennt die schöne Bilddatenerfassung und das beliebte Sharing-Ranking von Qianku.com

Mit der Popularität des Internets ist die Nachfrage der Menschen nach Bildern allmählich gestiegen, und es sind auch schöne Bild-Websites entstanden. Qianku.com ist eine Plattform, die sich auf die Bereitstellung hochauflösender Bilder und Materialressourcen spezialisiert hat. Es gibt eine große Anzahl exquisiter Bildmaterialien, die von Benutzern kostenlos heruntergeladen werden können und auch kommerzielle Kunstressourcen ersetzen können. Das manuelle Herunterladen dieser wunderschönen Bilder ist jedoch zeitaufwändig und ineffizient. Daher stellt dieser Artikel vor, wie man mit dem Scrapy-Crawler schöne Bilddaten erhält und beliebte Aktien auf Qianku.com einordnet.

1. Scrapy installieren

Bevor wir Scrapy installieren, müssen wir im Voraus die Python-Umgebung installieren. In der Python-Umgebung kann Scrapy über den Befehl pip install scrapy installiert werden.

2. Erstellen Sie ein Scrapy-Projekt

Öffnen Sie das Befehlszeilenterminal, geben Sie das Verzeichnis ein, in dem Sie das Projekt erstellen möchten, und geben Sie den Befehl scrapy startproject qkspider ein, um im Verzeichnis ein Scrapy-Projekt mit dem Namen „qkspider“ zu erstellen.

3. Erstellen Sie einen Crawler

Geben Sie das Projektverzeichnis ein und geben Sie den Befehl scrapy genspider qk qkpic.com ein, um einen Crawler mit dem Namen „qk“ im Spiders-Ordner zu erstellen.

4. Code schreiben

1. Ändern Sie die Datei „settings.py“

Öffnen Sie zunächst die Datei „settings.py“ im qkspider-Verzeichnis und fügen Sie darin den folgenden Code hinzu:

ITEM_PIPELINES = {'qkspider.pipelines.QkspiderPipeline':100,}

Dies dient zum Speichern der erhaltenen schönen Bilddaten in der Datenbank eingetragen.

2. Ändern Sie die Datei „pipelines.py“

Als nächstes müssen wir die Datei „pipelines.py“ im qkspider-Verzeichnis öffnen und den folgenden Code hinzufügen:

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

Dies dient dazu, die erhaltenen schönen Bilddaten in MongoDB zu speichern.

3. Ändern Sie die Datei „items.py“

Öffnen Sie die Datei „items.py“ im qkspider-Verzeichnis und fügen Sie den folgenden Code hinzu:

import scrapy

class QkspiderItem(scrapy.Item):
    title = scrapy.Field()
    img_url = scrapy.Field()
    share_num = scrapy.Field()

Hiermit wird der abzurufende Datentyp definiert.

4. Ändern Sie die qk.py-Datei

Öffnen Sie die qk.py-Datei im Spiders-Ordner und fügen Sie den folgenden Code hinzu:

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

Hiermit wird festgelegt, nach welchen Regeln die schönen Bilddaten des Qianku gecrawlt werden sollen Website und hinzufügen Die Daten werden in MongoDB gespeichert. In diesem Code geben wir die zu erhaltenden schönen Bildinformationen an, einschließlich des schönen Bildtitels, der URL-Adresse und des Freigabevolumens.

5. Führen Sie den Crawler aus

Jetzt können wir das Crawler-Programm ausführen, das wir gerade im Befehlszeilenterminal geschrieben haben. Geben Sie den Befehl scrapy crawl qk im qkspider-Verzeichnis ein, um das Programm in der Datei qk.py auszuführen und mit dem Crawlen der schönen Bilddaten der Qianku-Website und deren Speicherung in MongoDB zu beginnen.

6. Erreichen Sie das beliebte Sharing-Ranking

Um das beliebte Sharing-Ranking der Qianku-Website zu erhalten, müssen wir die URL der beliebten Listenseite abrufen und den folgenden Code zur qk.py-Datei hinzufügen:

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

In diesem Code weisen wir start_urls der Website-Homepage und der beliebten Listenseite zu und fügen eine neue Funktion parse_rank_list hinzu.

7. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit dem Scrapy-Crawler-Framework die schönen Bilddaten der Qianku-Website crawlen. Während des Crawler-Prozesses definieren wir die Datentypen, die wir abrufen müssen, und verwenden MongoDB zum Speichern der erhaltenen Daten. Darüber hinaus wird in diesem Artikel auch erläutert, wie Sie die beliebte Sharing-Rangliste der Qianku-Website erhalten, um die Funktionalität des Crawler-Programms zu erweitern.

Das obige ist der detaillierte Inhalt vonDer Scrapy-Crawler erkennt die schöne Bilddatenerfassung und das beliebte Sharing-Ranking von Qianku.com. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn