Heim Backend-Entwicklung Python-Tutorial Scrapy in Aktion: Daten zu Douban-Filmen durchsuchen und Beliebtheitsrankings bewerten

Scrapy in Aktion: Daten zu Douban-Filmen durchsuchen und Beliebtheitsrankings bewerten

Jun 22, 2023 pm 01:49 PM
豆瓣 爬取 scrapy

Scrapy ist ein Open-Source-Python-Framework zum schnellen und effizienten Scrapen von Daten. In diesem Artikel verwenden wir Scrapy, um die Daten zu crawlen und die Beliebtheit von Douban-Filmen zu bewerten.

  1. Vorbereitung

Zuerst müssen wir Scrapy installieren. Sie können Scrapy installieren, indem Sie den folgenden Befehl in die Befehlszeile eingeben:

pip install scrapy
Nach dem Login kopieren

Als nächstes erstellen wir ein Scrapy-Projekt. Geben Sie in der Befehlszeile den folgenden Befehl ein:

scrapy startproject doubanmovie
Nach dem Login kopieren

Dadurch wird ein Scrapy-Projekt namens doubanmovie erstellt. Anschließend gehen wir in das Projektverzeichnis und erstellen einen Spider namens douban.py. Geben Sie in der Befehlszeile den folgenden Befehl ein:

cd doubanmovie
scrapy genspider douban douban.com
Nach dem Login kopieren

Jetzt haben wir einen Spider einsatzbereit. Als nächstes definieren wir das Verhalten der Spinne, um die erforderlichen Daten zu erhalten.

  1. Filmdaten crawlen

Wir werden Spider verwenden, um Douban-Filmdaten zu crawlen. Konkret erhalten wir folgende Informationen:

  • Filmname
  • Regisseur
  • Schauspieler
  • Genre
  • Land
  • Sprache
  • Erscheinungsdatum
  • Länge
  • Bewertung
  • Anzahl der Rezensionen ers

Open do uban .py-Datei hinzufügen, fügen wir den folgenden Code hinzu:

import scrapy

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['douban.com']
    start_urls = ['https://movie.douban.com/top250']

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }
Nach dem Login kopieren

In diesem Code verwenden wir XPath, um die Informationen auszuwählen, die wir benötigen. Wir verwenden yield, um diese Informationen zu generieren und return, um sie an den Benutzer zurückzugeben.

Wenn wir jetzt unseren Spider ausführen (führen Sie den folgenden Befehl aus: scrapy crawl douban), crawlt er die Daten für die 250 besten Filme und gibt sie an die Befehlszeile zurück.

  1. Bewertungs-Beliebtheitsranking erhalten

Jetzt haben wir erfolgreich die Daten der 250 besten Filme erhalten. Als nächstes erhalten wir das Ranking ihrer Beliebtheitsbewertung.

Wir müssen zuerst einen neuen Spider erstellen, um die TOP250-Liste der Douban-Filme zu crawlen. Wir werden diese Liste verwenden, um die Rangfolge der Filme zu ermitteln.

In der Datei douban.py fügen wir den folgenden Code hinzu:

import scrapy

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['douban.com']
    start_urls = ['https://movie.douban.com/top250']

    def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for movie in movie_list:
            yield {
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
Nach dem Login kopieren

Im Code verwenden wir eine Variable namens next_page, um zu überprüfen, ob wir die letzte Seite erreicht haben. Wenn wir die letzte Seite noch nicht erreicht haben, crawlen wir weiter zur nächsten Seite.

Als nächstes müssen wir die Parse-Methode aktualisieren, um die Rangfolge des Films zu erhalten. Wir werden die Enumerate-Funktion von Python verwenden, um jedem Film eine Rangfolge zuzuordnen.

In der Datei douban.py ersetzen wir die ursprüngliche Parse-Methode durch:

def parse(self, response):
        movie_list = response.xpath('//div[@class="item"]')
        for i, movie in enumerate(movie_list):
            yield {
                'rank': i + 1,
                'name': movie.xpath('.//span[@class="title"]/text()').get(),
                'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(),
                'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(),
                'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(),
                'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(),
                'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(),
                'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(),
                'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(),
                'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(),
                'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(),
            }

        next_page = response.xpath('//span[@class="next"]/a/@href')
        if next_page:
            url = response.urljoin(next_page[0].get())
            yield scrapy.Request(url, callback=self.parse)
Nach dem Login kopieren

Wenn wir nun unseren Spider erneut ausführen, ruft er die Daten für die ersten 250 Filme ab und gibt sie an die Befehlszeile zurück. An dieser Stelle sehen wir die Rangliste aller Filme.

  1. Fazit

Scrapy ist ein sehr leistungsstarkes und flexibles Tool zum schnellen und effizienten Scrapen von Daten. In diesem Artikel haben wir Scrapy erfolgreich verwendet, um Douban-Filmdaten zu crawlen und Beliebtheitsrankings zu bewerten.

Wir verwenden Python-Code und XPath, um selektiv Informationen auf der Webseite abzurufen und verwenden Yield-Anweisungen, um sie an den Benutzer zurückzugeben. Während des gesamten Prozesses bietet Scrapy eine einfache und effektive Möglichkeit, große Datenmengen zu verwalten und zu crawlen, sodass wir Daten schnell analysieren und verarbeiten können.

Das obige ist der detaillierte Inhalt vonScrapy in Aktion: Daten zu Douban-Filmen durchsuchen und Beliebtheitsrankings bewerten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Jun 22, 2023 am 09:41 AM

Scrapy implementiert das Crawlen von Artikeln und die Analyse öffentlicher WeChat-Konten. WeChat ist in den letzten Jahren eine beliebte Social-Media-Anwendung, und die darin betriebenen öffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind öffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes öffentliche Konto Artikel, grafische Nachrichten und andere Informationen veröffentlichen kann. Diese Informationen können in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw. In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu öffentlichen Konten verwenden. Scr

Metadaten-Scraping mit der New York Times API Metadaten-Scraping mit der New York Times API Sep 02, 2023 pm 10:13 PM

Einleitung Letzte Woche habe ich eine Einleitung über das Scrapen von Webseiten zum Sammeln von Metadaten geschrieben und erwähnt, dass es unmöglich sei, die Website der New York Times zu scrapen. Die Paywall der New York Times blockiert Ihre Versuche, grundlegende Metadaten zu sammeln. Aber es gibt eine Möglichkeit, dieses Problem mithilfe der New York Times API zu lösen. Vor kurzem habe ich mit dem Aufbau einer Community-Website auf der Yii-Plattform begonnen, die ich in einem zukünftigen Tutorial veröffentlichen werde. Ich möchte in der Lage sein, problemlos Links hinzuzufügen, die für den Inhalt der Website relevant sind. Während Benutzer URLs problemlos in Formulare einfügen können, ist die Bereitstellung von Titel- und Quelleninformationen zeitaufwändig. Deshalb werde ich im heutigen Tutorial den Scraping-Code, den ich kürzlich geschrieben habe, erweitern, um die New York Times-API zum Sammeln von Schlagzeilen zu nutzen, wenn ich einen Link zur New York Times hinzufüge. Denken Sie daran, ich bin involviert

Scrapy-Implementierungsmethode für asynchrones Laden basierend auf Ajax Scrapy-Implementierungsmethode für asynchrones Laden basierend auf Ajax Jun 22, 2023 pm 11:09 PM

Scrapy ist ein Open-Source-Python-Crawler-Framework, das schnell und effizient Daten von Websites abrufen kann. Viele Websites verwenden jedoch die asynchrone Ladetechnologie von Ajax, was es Scrapy unmöglich macht, Daten direkt abzurufen. In diesem Artikel wird die Scrapy-Implementierungsmethode basierend auf dem asynchronen Laden von Ajax vorgestellt. 1. Ajax-Prinzip des asynchronen Ladens Ajax-Asynchronladen: Bei der herkömmlichen Seitenlademethode muss der Browser, nachdem er eine Anfrage an den Server gesendet hat, darauf warten, dass der Server eine Antwort zurückgibt und die gesamte Seite lädt, bevor er mit dem nächsten Schritt fortfährt.

Scrapy-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Scrapy-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy ist ein Python-basiertes Crawler-Framework, mit dem schnell und einfach relevante Informationen im Internet abgerufen werden können. In diesem Artikel analysieren wir anhand eines Scrapy-Falls im Detail, wie Unternehmensinformationen auf LinkedIn gecrawlt werden. Bestimmen Sie die Ziel-URL. Zunächst müssen wir klarstellen, dass unser Ziel die Unternehmensinformationen auf LinkedIn sind. Daher müssen wir die URL der LinkedIn-Unternehmensinformationsseite finden. Öffnen Sie die LinkedIn-Website, geben Sie den Firmennamen in das Suchfeld ein und

So stellen Sie den englischen Modus in der Douban-App ein. So stellen Sie den englischen Modus in der Douban-App ein So stellen Sie den englischen Modus in der Douban-App ein. So stellen Sie den englischen Modus in der Douban-App ein Mar 12, 2024 pm 02:46 PM

Wie stelle ich den Englischmodus in der Douban-App ein? Die Douban-App ist eine Software, mit der Sie Bewertungen verschiedener Ressourcen anzeigen können. Diese Software verfügt über viele Funktionen. Wenn Benutzer diese Software zum ersten Mal verwenden, müssen sie sich anmelden. Die Standardsprache dieser Software ist für einige Benutzer verwenden gerne den englischen Modus, wissen jedoch nicht, wie sie den englischen Modus in dieser Software einstellen sollen. Der folgende Editor hat die Methode zum Einstellen des englischen Modus als Referenz zusammengestellt. So stellen Sie den Englischmodus in der Douban-App ein: 1. Öffnen Sie die „Douban“-App auf Ihrem Telefon. 2. Klicken Sie auf „Mein“ 3. Wählen Sie „Einstellungen“ in der oberen rechten Ecke.

Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? Sep 05, 2023 am 08:41 AM

Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? 1. Einführung In PHP-Projekten müssen wir häufig Daten von anderen Websites crawlen und diese Daten verarbeiten. Viele Websites bieten API-Schnittstellen, und wir können Daten durch Aufrufen dieser Schnittstellen abrufen. In diesem Artikel wird erläutert, wie Sie mit PHP die API-Schnittstelle zum Crawlen und Verarbeiten von Daten aufrufen. 2. Ermitteln Sie die URL und die Parameter der API-Schnittstelle. Bevor Sie beginnen, müssen Sie die URL der Ziel-API-Schnittstelle und die erforderlichen Parameter ermitteln.

Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Jun 22, 2023 pm 01:57 PM

Scrapy ist ein leistungsstarkes Python-Crawler-Framework, mit dem große Datenmengen aus dem Internet abgerufen werden können. Bei der Entwicklung von Scrapy stoßen wir jedoch häufig auf das Problem, doppelte URLs zu crawlen, was viel Zeit und Ressourcen verschwendet und die Effizienz beeinträchtigt. In diesem Artikel werden einige Scrapy-Optimierungstechniken vorgestellt, um das Crawlen doppelter URLs zu reduzieren und die Effizienz von Scrapy-Crawlern zu verbessern. 1. Verwenden Sie die Attribute „start_urls“ und „allowed_domains“ im Scrapy-Crawler

Der Weltraumthriller „Alien: Das letzte Schiff' erzielte auf Douban 7,7 Punkte und die Einspielergebnisse übertrafen am Tag nach seiner Veröffentlichung die 100-Millionen-Marke. Der Weltraumthriller „Alien: Das letzte Schiff' erzielte auf Douban 7,7 Punkte und die Einspielergebnisse übertrafen am Tag nach seiner Veröffentlichung die 100-Millionen-Marke. Aug 17, 2024 pm 10:50 PM

Laut Nachrichten dieser Website vom 17. August wurde der Weltraumthriller „Alien: The Last Ship“ von 20th Century Pictures gestern (16. August) auf dem chinesischen Festland veröffentlicht. Der Douban-Score wurde heute mit 7,7 bekannt gegeben. Laut Echtzeitdaten von Beacon Professional Edition hat der Film am 17. August um 20:5 Uhr die 100-Millionen-Marke überschritten. Die Verteilung der Bewertungen auf dieser Seite ist wie folgt: 5 Sterne machen 20,9 % aus, 4 Sterne machen 49,5 % aus, 3 Sterne machen 25,4 % aus, 2 Sterne machen 3,7 % aus, 1 Sterne machen 0,6 % aus. „Alien: Death Ship“ wird produziert von 20th Century Pictures, als Produzent fungiert Ridley Scott, der Regisseur von „Blade Runner“ und „Prometheus“, Regie führte Fede Alvare, das Drehbuch schrieben Fede Alvare und Rodo Seiagues sowie Card Leigh Spaeny, Isabella Merced, Aileen Wu und Spike Fey

See all articles