Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man mit Scrapy Douban-Bücher und deren Bewertungen und Kommentare crawlen?

Wie kann man mit Scrapy Douban-Bücher und deren Bewertungen und Kommentare crawlen?

WBOY
WBOYOriginal
2023-06-22 10:21:091683Durchsuche

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}

上面的代码实现了两个功能:

  1. 爬取豆瓣图书 top250 页面中的书籍标题、作者、评分和评论数。
  2. 将爬取到的数据以字典的形式返回。

在这个程序中,我们首先需要定义一个 DoubanSpider 类,并指定爬虫的名称、允许爬虫访问的域名和起始 URL。在 parse 方法中,我们通过 scrapy.Selector 对象进行 HTML 页面解析,并使用 XPath 表达式获取书籍的相关信息。

获取数据后,我们使用 yield 关键字将数据以字典的形式返回。这里的 yield 关键字的作用是将函数变成一个生成器,实现一次返回一个数据的效果。在 Scrapy 中,我们可以通过定义生成器的方式,实现对网站数据的高效抓取。

第四步:运行爬虫程序

在编写完爬虫程序后,我们需要在终端或命令行中运行以下代码来启动爬虫程序:

scrapy crawl douban -o result.json

这个指令的作用是启动名为 doubanrrreee

Der obige Code implementiert zwei Funktionen:

  1. Crawling der 250 besten Douban-Bücher Titel, Autor, Bewertung und Anzahl der Rezensionen auf der Seite.
  2. Geben Sie die gecrawlten Daten in Form eines Wörterbuchs zurück.
In diesem Programm müssen wir zunächst eine 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!

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