Heim >Backend-Entwicklung >Python-Tutorial >Der Scrapy-Crawler erkennt die schöne Bilddatenerfassung und das beliebte Sharing-Ranking von Qianku.com
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!