Heim > Backend-Entwicklung > Python-Tutorial > Verwenden Sie den Scrapy-Crawler, um Daten von neuartigen Websites zu analysieren

Verwenden Sie den Scrapy-Crawler, um Daten von neuartigen Websites zu analysieren

王林
Freigeben: 2023-06-23 09:21:59
Original
2439 Leute haben es durchsucht

Verwenden Sie den Scrapy-Crawler, um Daten von neuartigen Websites zu analysieren.

Im Zeitalter des Internets werden große Datenmengen von Websites gesammelt, und die Verwendung dieser Daten für Analysen und Mining ist zu einem wichtigen Thema geworden. In diesem Artikel wird die Verwendung des Scrapy-Crawler-Frameworks zum Crawlen neuartiger Website-Daten und die Verwendung von Python zur Datenanalyse vorgestellt.

1. Scrapy Framework

Scrapy ist ein Python-Framework zum Crawlen von Website-Daten. Es kann Daten auf effiziente, schnelle und skalierbare Weise extrahieren. Scrapy ist ein Open-Source-Framework, mit dem wir auf einfache Weise Spider-, Pipeline-, DownloaderMiddleware- und andere Module erstellen können. Für einige Data-Mining- und umfangreiche Crawling-Aufgaben ist das Scrapy-Framework sehr beliebt.

2. Roman-Website

Die von diesem Artikel gecrawlte Roman-Website ist „Biquge“, eine kostenlose Online-Website zum Lesen von Romanen. Auf dieser Website ist der Inhalt des Romans nach Kapiteln geordnet, sodass der Inhalt des Romankapitels automatisch gecrawlt werden muss und die Daten entsprechend der Klassifizierung des Romans gefiltert werden können.

3. Crawler-Design

Im Scrapy-Framework ist der Crawler ein sehr wichtiges Modul. Er kann Daten für verschiedene Websites oder verschiedene Seiten crawlen, indem er mehrere Spider definiert. Der in diesem Artikel geschriebene Crawler ist hauptsächlich in zwei Teile unterteilt: die Romanliste und den Romankapitelinhalt.

  1. Romanliste

Die Romanliste bezieht sich auf die Klassifizierung, den Namen, den Autor, den Status und andere Informationen des Romans. Auf der „Biquge“-Website verfügt jede Romankategorie über eine entsprechende Unterseite. Wenn Sie die Romanliste durchsuchen, crawlen Sie daher zunächst die URL der Romankategorie und durchsuchen Sie dann die Kategorieseite, um die Informationen zu jedem Roman zu erhalten.

  1. Romankapitelinhalt

Beim Crawlen des Kapitelinhalts eines Romans besteht die Hauptsache darin, das Kapitelverzeichnis jedes Romans abzurufen und die Inhalte im Kapitelverzeichnis der Reihe nach zusammenzufügen. Auf der Website „Biquge“ verfügt das Kapitelverzeichnis jedes Romans über eine entsprechende URL. Sie müssen also nur die Kapitelverzeichnis-URL jedes Romans abrufen und dann den Kapitelinhalt einzeln abrufen.

4. Implementierung des Crawlers

Bevor Sie den Crawler implementieren, müssen Sie das Scrapy-Framework installieren und ein Scrapy-Projekt erstellen. Im Scrapy-Projekt muss jeder Crawler die folgenden Teile definieren:

  1. Name

Jeder Crawler hat einen eindeutigen Namen, um verschiedene Crawler zu unterscheiden. In diesem Artikel nennen wir den Crawler „novel_spider“.

  1. Start_urls

Start-URL, die den Startpunkt des Crawlers festlegen soll.

start_urls = ['http://www.biquge.info/']
Nach dem Login kopieren
  1. parse

Crawler-Parsing-Methode: Diese Methode analysiert den von jeder URL in start_urls zurückgegebenen Inhalt und extrahiert nützliche Informationen daraus.

Bei dieser Methode wird zunächst die Seite mit der Romanliste analysiert, der Name, der Autor, der Status und die URL-Informationen jedes Romans extrahiert und diese Informationen über das Request-Objekt an die nächste Analysemethode übergeben.

def parse(self, response):
    # Get novel classifications
    classifications = response.xpath('//div[@class="nav"]/ul/li')
    for classification in classifications:
        url = classification.xpath('a/@href').extract_first()
        name = classification.xpath('a/text()').extract_first()

        # Get novels in classification
        yield scrapy.Request(url, callback=self.parse_classification, meta={'name': name})
Nach dem Login kopieren

Auf der Unterebenenseite erhalten Sie nacheinander den Romaninhalt, den Kapitelnamen und den Kapitelinhalt. Und übergeben Sie den Romantitel, den Kapitelnamen und die Kapitelinhaltsinformationen über Item.

def parse_chapter(self, response):
    item = NovelChapter()
    item['novel_name'] = response.meta['novel_name']
    item['chapter_name'] = response.meta['chapter_name']
    item['chapter_content'] = response.xpath('//div[@id="content"]/text()').extract()
    yield item
Nach dem Login kopieren

5. Datenanalyse

Nach Erhalt der Daten können wir Python- und Pandas-Bibliotheken verwenden, um die erhaltenen neuartigen Daten zu analysieren. Der folgende Code kann eine Pandas-Datenanalyse für die Romanliste durchführen.

import pandas as pd

# Load CSV data into dataframe
df = pd.read_csv('./novel.csv')

# Display novel counts by author's name
df.groupby('author_name')[['novel_name']].count().sort_values('novel_name', ascending=False)
Nach dem Login kopieren

6. Zusammenfassung

Scrapy ist ein leistungsstarkes Crawler-Framework, das problemlos Daten von Websites crawlen kann. In diesem Artikel wird anhand eines Beispiels einer Website zum Lesen von Romanen erläutert, wie das Scrapy-Framework zum Erfassen neuartiger Klassifizierungs- und Kapitelinhalte verwendet wird und wie Python- und Pandas-Bibliotheken zum Analysieren der erfassten Daten verwendet werden. Diese Technologie wird häufig zum Crawlen von Daten von anderen Websites wie Nachrichten, Produktinformationen, sozialen Medien usw. verwendet.

Das obige ist der detaillierte Inhalt vonVerwenden Sie den Scrapy-Crawler, um Daten von neuartigen Websites zu analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage