Heim Backend-Entwicklung Python-Tutorial Scrapy-Crawler in Aktion: Crawlen der Ranking-Daten von Maoyan-Filmen

Scrapy-Crawler in Aktion: Crawlen der Ranking-Daten von Maoyan-Filmen

Jun 22, 2023 am 08:58 AM
爬虫 scrapy 猫眼

Scrapy-Crawler-Praxis: Crawlen von Maoyan-Film-Ranking-Daten

Mit der Entwicklung des Internets ist das Daten-Crawling zu einem wichtigen Bestandteil des Big-Data-Zeitalters geworden. Beim Daten-Crawling können mithilfe der Crawler-Technologie automatisch die aktuell benötigten Daten erfasst, verarbeitet und analysiert werden. In den letzten Jahren hat sich Python zu einer der beliebtesten Programmiersprachen entwickelt. Unter ihnen ist Scrapy ein leistungsstarkes Crawler-Framework, das ein breites Anwendungsspektrum aufweist und insbesondere im Bereich des Daten-Crawlings die Aufmerksamkeit aller auf sich gezogen hat.

Dieser Artikel basiert auf dem Scrapy-Framework zum Crawlen von Maoyan-Filmranking-Daten. Der spezifische Prozess ist in vier Teile unterteilt: Analyse der Seitenstruktur, Schreiben des Crawler-Frameworks, Parsen der Seite und Speichern von Daten.

1. Analysieren Sie die Seitenstruktur

Zuerst müssen wir die Struktur der Maoyan-Filmrankingseite analysieren. Zur Vereinfachung der Bedienung verwenden wir den Google Chrome-Browser zur Seitenanalyse und XPath zum Extrahieren der erforderlichen Informationen.

Wie Sie sehen können, enthält die Rangliste der Maoyan-Filme Informationen zu mehreren Filmen, und jeder Film verfügt über einen HTML-Codeblock ähnlich dem Bild unten.

Unser Ziel ist es, aus jedem HTML-Codeblock die fünf Daten Name des Films, Hauptrolle, Veröffentlichungszeit, Link zum Filmplakat und Bewertung zu erhalten. Dann können wir die F12-Taste drücken, um die Entwicklertools im Google Chrome-Browser zu öffnen, dann die Registerkarte „Elemente“ auswählen, die Maus auf das Zielelement bewegen, das wir extrahieren müssen, mit der rechten Maustaste klicken und „Kopieren -> XPath kopieren“ auswählen " .

Der kopierte XPath-Pfad lautet wie folgt:

/html/body/div[3]/div/div[2]/dl/dd[1]/div/div/div[1]/p[1]/ a /text()

wobei „/html/body/div[3]/div/div[2]/dl/dd“ den übergeordneten Knoten der gesamten Filmliste darstellt. In der Reihenfolge nach unten können Sie die Elemente finden wir müssen extrahieren.

2. Schreiben Sie das Crawler-Framework

Als nächstes müssen wir ein Scrapy-Projekt erstellen. Sie können sich auf die offizielle Dokumentation von Scrapy beziehen (https://docs.scrapy.org/en/latest/intro/tutorial.html). Erstellen Sie nach dem Erstellen des Projekts eine neue Datei mit dem Namen maoyan.py im Spiders-Verzeichnis.

Das Folgende ist unser Crawler-Framework-Code:

import scrapy
from maoyan.items import MaoyanItem

class MaoyanSpider(scrapy.Spider):

name = 'maoyan'
allowed_domains = ['maoyan.com']
start_urls = ['http://maoyan.com/board/4']

def parse(self, response):
    movies = response.xpath('//dl[@class="board-wrapper"]/dd')
    for movie in movies:
        item = MaoyanItem()
        item['title'] = movie.xpath('.//p[@class="name"]/a/@title').extract_first()
        item['actors'] = movie.xpath('.//p[@class="star"]/text()').extract_first().strip()
        item['release_date'] = movie.xpath('.//p[@class="releasetime"]/text()').extract_first().strip()
        item['image_url'] = movie.xpath('.//img/@data-src').extract_first()
        item['score'] = movie.xpath('.//p[@class="score"]/i[@class="integer"]/text()').extract_first() + 
                        movie.xpath('.//p[@class="score"]/i[@class="fraction"]/text()').extract_first()
        yield item
Nach dem Login kopieren

Im Code definieren wir zunächst Spiders Namen, erlaubte Domänen und Start-URLs. Darunter bedeutet „allowed_domains“, dass nur URLs, die zu diesem Domainnamen gehören, vom Crawler abgerufen und extrahiert werden. Gleichzeitig gibt „start_urls“ die erste URL-Adresse an, die der Crawler anfordern wird.

Die Parse-Methode von Spider empfängt den Inhalt der Antwort und extrahiert dann die fünf Daten jedes Films: Name, Hauptrolle, Veröffentlichungszeit, Link zum Filmplakat und Bewertung über den XPath-Pfad und speichert sie in MaoyanItem.

Schließlich haben wir jedes Item-Objekt über das Schlüsselwort yield zurückgegeben. Hinweis: Das von uns definierte Item-Objekt befindet sich in einer Datei namens items.py und muss importiert werden.

3. Analysieren Sie die Seite

Wenn der Crawler die Seite findet, die wir crawlen müssen, können wir mit dem Parsen des HTML-Dokuments beginnen und die benötigten Informationen extrahieren. Dieser Teil des Inhalts konzentriert sich hauptsächlich auf XPath-Abfragen und die Verarbeitung regulärer Ausdrücke von Antwortobjekten in Scrapy.

In diesem Beispiel verwenden wir den XPath-Pfad, um fünf Datenelemente für jeden Film auf der Maoyan-Filmranking-Seite zu extrahieren.

4. Daten speichern

Nachdem die Daten analysiert wurden, müssen wir sie speichern. Im Allgemeinen speichern wir die erhaltenen Daten in einer Datei oder speichern sie in einer Datenbank.

In diesem Beispiel entscheiden wir uns dafür, die Daten in einer CSV-Datei zu speichern:

import csv

class MaoyanPipeline(object):

def __init__(self):
    self.file = open('maoyan_top100_movies.csv', 'w', newline='', encoding='utf-8')
    self.writer = csv.writer(self.file)

def process_item(self, item, spider):
    row = [item['title'], item['actors'], item['release_date'], item['image_url'], item['score']]
    self.writer.writerow(row)
    return item

def close_spider(self, spider):
    self.file.close()
Nach dem Login kopieren

Im obigen Code verwenden wir das CSV-Modul in Python, um die Daten zu importieren in eine Datei mit dem Namen maoyan_top100_movies.csv. Wenn der Spider geschlossen wird, wird auch die CSV-Datei geschlossen.

Zusammenfassung

In diesem Artikel haben wir gelernt, wie man mit dem Scrapy-Framework Ranking-Daten für Maoyan-Filme crawlt. Zuerst haben wir die Seitenstruktur analysiert und dann das Scrapy-Framework geschrieben, um Daten zu crawlen, die Seite zu analysieren und Daten zu speichern. Im tatsächlichen Kampf können wir lernen, wie wir Legalität, Benutzerfreundlichkeit und Effizienz bei der Datenerfassung vereinen können.

Das obige ist der detaillierte Inhalt vonScrapy-Crawler in Aktion: Crawlen der Ranking-Daten von Maoyan-Filmen. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

Java-Tutorial
1659
14
PHP-Tutorial
1258
29
C#-Tutorial
1232
24
Wie lange dauert es, den Python-Crawler zu erlernen? Wie lange dauert es, den Python-Crawler zu erlernen? Oct 25, 2023 am 09:44 AM

Die Zeit, die zum Erlernen von Python-Crawlern benötigt wird, ist von Person zu Person unterschiedlich und hängt von Faktoren wie persönlicher Lernfähigkeit, Lernmethoden, Lernzeit und Erfahrung ab. Beim Erlernen von Python-Crawlern geht es nicht nur um das Erlernen der Technologie selbst, sondern es sind auch gute Fähigkeiten zur Informationsbeschaffung, zur Problemlösung und zur Teamarbeit erforderlich. Durch kontinuierliches Lernen und Üben werden Sie nach und nach zu einem hervorragenden Python-Crawler-Entwickler heranwachsen.

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

Verwendung von Selenium und PhantomJS im Scrapy-Crawler Verwendung von Selenium und PhantomJS im Scrapy-Crawler Jun 22, 2023 pm 06:03 PM

Verwendung von Selenium und PhantomJS in Scrapy-Crawlern Scrapy ist ein hervorragendes Webcrawler-Framework unter Python und wird häufig bei der Datenerfassung und -verarbeitung in verschiedenen Bereichen eingesetzt. Bei der Implementierung des Crawlers ist es manchmal erforderlich, Browservorgänge zu simulieren, um die von bestimmten Websites präsentierten Inhalte abzurufen. In diesem Fall werden Selenium und PhantomJS benötigt. Selenium simuliert menschliche Vorgänge im Browser und ermöglicht uns so die Automatisierung von Webanwendungstests

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

Analyse und Lösungen für häufige Probleme von PHP-Crawlern Analyse und Lösungen für häufige Probleme von PHP-Crawlern Aug 06, 2023 pm 12:57 PM

Analyse häufiger Probleme und Lösungen für PHP-Crawler Einleitung: Mit der rasanten Entwicklung des Internets ist die Erfassung von Netzwerkdaten in verschiedenen Bereichen zu einem wichtigen Bindeglied geworden. Als weit verbreitete Skriptsprache verfügt PHP über leistungsstarke Funktionen zur Datenerfassung. Eine der am häufigsten verwendeten Technologien sind Crawler. Bei der Entwicklung und Verwendung von PHP-Crawlern stoßen wir jedoch häufig auf einige Probleme. In diesem Artikel werden diese Probleme analysiert, Lösungen für sie bereitgestellt und entsprechende Codebeispiele bereitgestellt. 1. Beschreibung des Problems, dass die Daten der Zielwebseite nicht korrekt geparst werden können.

Effiziente Java-Crawler-Praxis: Weitergabe von Webdaten-Crawling-Techniken Effiziente Java-Crawler-Praxis: Weitergabe von Webdaten-Crawling-Techniken Jan 09, 2024 pm 12:29 PM

Java-Crawler-Praxis: So crawlen Sie Webseitendaten effizient Einführung: Mit der rasanten Entwicklung des Internets werden große Mengen wertvoller Daten auf verschiedenen Webseiten gespeichert. Um diese Daten zu erhalten, ist es oft notwendig, manuell auf jede Webseite zuzugreifen und die Informationen einzeln zu extrahieren, was zweifellos eine mühsame und zeitaufwändige Aufgabe ist. Um dieses Problem zu lösen, wurden verschiedene Crawler-Tools entwickelt, von denen der Java-Crawler eines der am häufigsten verwendeten ist. Dieser Artikel führt den Leser dazu, zu verstehen, wie man mit Java einen effizienten Webcrawler schreibt, und demonstriert die Praxis anhand spezifischer Codebeispiele. 1. Die Basis des Reptils

Wie richte ich eine passwortfreie Zahlung bei Maoyan ein? Spezifische Schritte zum Einrichten einer passwortfreien Zahlung auf Maoyan Wie richte ich eine passwortfreie Zahlung bei Maoyan ein? Spezifische Schritte zum Einrichten einer passwortfreien Zahlung auf Maoyan Mar 15, 2024 pm 06:16 PM

Maoyan ist eine ganz besondere Plattform für den Ticketkauf. Sie bietet Benutzern viele umfangreiche Inhalte, darunter Aufführungen, Filme, Musikfestivals usw., und bietet so Komfort für alle. Es gibt viele Funktionen auf der Maoyan-Plattform. Wissen Sie also, wie Sie eine passwortfreie Zahlung auf Maoyan einrichten? Die spezifischen Schritte zum Einrichten einer passwortfreien Zahlung auf Maoyan 1. Öffnen Sie Maoyan Movies und klicken Sie unten rechts auf „Mein“. Ecke und klicken Sie dann auf „Wallet“. 2. Klicken Sie auf Zahlungseinstellungen und dann auf Zahlungspassworteinstellungen. 3. Klicken Sie auf passwortfreie Zahlung. Funktionen der Software: 1. Beliebte Filme, alle verfügbar. Detaillierte und umfangreiche Filminformationen, klassische und urkomische Filmkritiken. Hochauflösender Vorschau-Trailer, Sie können alles auf einen Blick sehen. 2. Riesige Kinos zur Auswahl, überprüfen Sie die Theaterpläne in Echtzeit und finden Sie sie jederzeit und überall.

See all articles