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.
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.
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:
Jeder Crawler hat einen eindeutigen Namen, um verschiedene Crawler zu unterscheiden. In diesem Artikel nennen wir den Crawler „novel_spider“.
Start-URL, die den Startpunkt des Crawlers festlegen soll.
start_urls = ['http://www.biquge.info/']
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})
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
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)
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!