Scrapy-Framework-Praxis: Crawlen von Jianshu-Website-Daten
Scrapy ist ein Open-Source-Python-Crawler-Framework, mit dem Daten aus dem World Wide Web extrahiert werden können. In diesem Artikel stellen wir das Scrapy-Framework vor und verwenden es zum Crawlen von Daten von Jianshu-Websites.
Scrapy kann mit Paketmanagern wie Pip oder Conda installiert werden. Hier verwenden wir pip, um Scrapy zu installieren. Geben Sie den folgenden Befehl in die Befehlszeile ein:
pip install scrapy
Sobald die Installation abgeschlossen ist, können Sie mit dem folgenden Befehl überprüfen, ob Scrapy erfolgreich installiert wurde:
scrapy version
Wenn Sie eine Ausgabe ähnlich der „Scrapy x.x.x – kein aktives Projekt“ sehen ", dann wurde Scrapy erfolgreich installiert.
Bevor wir Scrapy verwenden, müssen wir ein Scrapy-Projekt erstellen. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy startproject jianshu
Dadurch wird ein Scrapy-Projekt mit dem Namen „jianshu“ im aktuellen Verzeichnis erstellt.
In Scrapy ist ein Crawler eine Komponente, die von einer Website extrahierte Daten verarbeitet. Wir verwenden Scrapy Shell, um die Jianshu-Website zu analysieren und Crawler zu erstellen.
Geben Sie den folgenden Befehl in der Befehlszeile ein:
scrapy shell "https://www.jianshu.com"
Dadurch wird die Scrapy Shell gestartet, in der wir den Seitenquellcode und Elemente der Jianshu-Website anzeigen können, um Selektoren für unseren Crawler zu erstellen.
Zum Beispiel können wir den folgenden Selektor verwenden, um den Artikeltitel zu extrahieren:
response.css('h1.title::text').extract_first()
Wir können den folgenden Selektor verwenden, um den Artikelautor zu extrahieren:
response.css('a.name::text').extract_first()
Nachdem wir den Selektor in Scrapy Shell getestet haben, können wir einen für unseren Crawler erstellen Neue Python-Dateien. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy genspider jianshu_spider jianshu.com
Dadurch wird eine Scrapy-Spinne mit dem Namen „jianshu_spider“ erstellt. Wir können den von uns in Scrapy Shell getesteten Selektor zur .py-Datei des Crawlers hinzufügen und die zu extrahierenden Daten angeben.
Zum Beispiel extrahiert der folgende Code die Titel und Autoren aller Artikel auf der Homepage der Jianshu-Website:
import scrapy class JianshuSpider(scrapy.Spider): name = 'jianshu_spider' allowed_domains = ['jianshu.com'] start_urls = ['https://www.jianshu.com/'] def parse(self, response): for article in response.css('li[data-note-id]'): yield { 'title': article.css('a.title::text').extract_first(), 'author': article.css('a.name::text').extract_first(), }
Jetzt führen wir den Scrapy-Crawler im Befehlszeilenmodus aus und geben Sie die Ergebnisse in einem JSON-Format in der Datei aus. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy crawl jianshu_spider -o articles.json
Dieser Befehl führt unseren Crawler aus und speichert die Ausgabedaten in einer JSON-Datei namens „articles.json“.
In diesem Artikel haben wir das Scrapy-Framework vorgestellt und es zum Scrapen von Daten von der Jianshu-Website verwendet. Das Extrahieren von Daten aus Websites ist mit dem Scrapy-Framework einfach und Scrapy kann aufgrund seiner Parallelität und Skalierbarkeit in umfangreiche Datenextraktionsanwendungen skaliert werden.
Das obige ist der detaillierte Inhalt vonScrapy-Framework-Praxis: Crawlen von Jianshu-Website-Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!