Mit der Entwicklung des Internets verlassen sich die Menschen zunehmend auf das Internet, um Informationen zu erhalten. Für Buchliebhaber ist Douban Books zu einer unverzichtbaren Plattform geworden. Darüber hinaus bietet Douban Books eine Fülle von Buchbewertungen und Rezensionen, die es den Lesern ermöglichen, ein Buch umfassender zu verstehen. Das manuelle Abrufen dieser Informationen ist jedoch gleichbedeutend mit der Suche nach der Nadel im Heuhaufen. Zu diesem Zeitpunkt können wir die Daten mit dem Scrapy-Tool crawlen.
Scrapy ist ein auf Python basierendes Open-Source-Webcrawler-Framework, das uns hilft, Daten effizient von Websites zu extrahieren. In diesem Artikel werde ich mich auf die Schritte konzentrieren und im Detail vorstellen, wie man mit Scrapy Douban-Bücher und deren Bewertungen und Kommentare crawlt.
Schritt 1: Scrapy installieren
Zuerst müssen Sie Scrapy auf Ihrem Computer installieren. Wenn Sie pip (Python-Paketverwaltungstool) installiert haben, müssen Sie nur den folgenden Befehl im Terminal oder in der Befehlszeile eingeben:
pip install scrapy
Auf diese Weise wird Scrapy auf Ihrem Computer installiert. Wenn ein Fehler oder eine Warnung auftritt, wird empfohlen, entsprechend den Anweisungen entsprechende Anpassungen vorzunehmen.
Schritt 2: Erstellen Sie ein neues Scrapy-Projekt
Als nächstes müssen wir den folgenden Befehl im Terminal oder in der Befehlszeile eingeben, um ein neues Scrapy-Projekt zu erstellen:
scrapy startproject douban
Dieser Befehl erstellt einen Ordner namens douban im aktuellen Verzeichnis. Es enthält die grundlegende Datei- und Verzeichnisstruktur von Scrapy.
Schritt 3: Schreiben Sie ein Crawler-Programm
In Scrapy müssen wir ein Crawler-Programm schreiben, um Scrapy mitzuteilen, wie Daten von der Website extrahiert werden sollen. Daher müssen wir eine neue Datei mit dem Namen douban_spider.py
erstellen und den folgenden Code schreiben: douban_spider.py
的文件,并编写如下代码:
import scrapy class DoubanSpider(scrapy.Spider): name = 'douban' allowed_domains = ['book.douban.com'] start_urls = ['https://book.douban.com/top250'] def parse(self, response): selector = scrapy.Selector(response) books = selector.xpath('//tr[@class="item"]') for book in books: title = book.xpath('td[2]/div[1]/a/@title').extract_first() author = book.xpath('td[2]/div[1]/span[1]/text()').extract_first() score = book.xpath('td[2]/div[2]/span[@class="rating_nums"]/text()').extract_first() comment_count = book.xpath('td[2]/div[2]/span[@class="pl"]/text()').extract_first() comment_count = comment_count.strip('()') yield {'title': title, 'author': author, 'score': score, 'comment_count': comment_count}
上面的代码实现了两个功能:
在这个程序中,我们首先需要定义一个 DoubanSpider
类,并指定爬虫的名称、允许爬虫访问的域名和起始 URL。在 parse
方法中,我们通过 scrapy.Selector
对象进行 HTML 页面解析,并使用 XPath 表达式获取书籍的相关信息。
获取数据后,我们使用 yield
关键字将数据以字典的形式返回。这里的 yield
关键字的作用是将函数变成一个生成器,实现一次返回一个数据的效果。在 Scrapy 中,我们可以通过定义生成器的方式,实现对网站数据的高效抓取。
第四步:运行爬虫程序
在编写完爬虫程序后,我们需要在终端或命令行中运行以下代码来启动爬虫程序:
scrapy crawl douban -o result.json
这个指令的作用是启动名为 douban
rrreee
DoubanSpider
-Klasse definieren und den Namen des Crawlers, den Domänennamen und die Start-URL angeben, auf die der Crawler zugreifen darf. In der Methode parse
analysieren wir die HTML-Seite über das Objekt scrapy.Selector
und verwenden XPath-Ausdrücke, um relevante Informationen über das Buch zu erhalten. Nachdem wir die Daten erhalten haben, verwenden wir das Schlüsselwort yield
, um die Daten in Form eines Wörterbuchs zurückzugeben. Das Schlüsselwort yield
wird hier verwendet, um die Funktion in einen Generator umzuwandeln, um den Effekt zu erzielen, dass jeweils nur ein Datenwert zurückgegeben wird. In Scrapy können wir durch die Definition von Generatoren ein effizientes Crawling von Website-Daten erreichen. 🎜🎜Schritt 4: Führen Sie das Crawler-Programm aus🎜🎜Nachdem wir das Crawler-Programm geschrieben haben, müssen wir den folgenden Code im Terminal oder in der Befehlszeile ausführen, um das Crawler-Programm zu starten: 🎜rrreee🎜Die Funktion dieses Befehls besteht darin, das Crawler-Programm zu starten mit dem Namen douban und geben Sie die gecrawlten Daten im JSON-Format in die Datei result.json aus. 🎜🎜Durch die oben genannten vier Schritte können wir Douban-Bücher und ihre Bewertungen und Rezensionsinformationen erfolgreich crawlen. Wenn Sie die Effizienz und Stabilität des Crawler-Programms weiter verbessern möchten, müssen Sie natürlich auch einige andere Optimierungen und Anpassungen vornehmen. Zum Beispiel: Verzögerungszeit einstellen, Anti-Crawling-Mechanismus verhindern usw. 🎜🎜Kurz gesagt ist die Verwendung von Scrapy zum Crawlen von Douban-Büchern und deren Bewertungen und Rezensionsinformationen eine relativ einfache und interessante Aufgabe. Wenn Sie sich für Daten-Crawling und Python-Programmierung interessieren, können Sie das Daten-Crawling auch auf anderen Websites ausprobieren, um Ihre Programmierkenntnisse zu verbessern. 🎜
Das obige ist der detaillierte Inhalt vonWie kann man mit Scrapy Douban-Bücher und deren Bewertungen und Kommentare crawlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!