Heim > Backend-Entwicklung > Python-Tutorial > Scrapy-Framework-Praxis: Crawlen von Jianshu-Website-Daten

Scrapy-Framework-Praxis: Crawlen von Jianshu-Website-Daten

WBOY
Freigeben: 2023-06-22 09:36:56
Original
1348 Leute haben es durchsucht

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.

  1. Scrapy installieren

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
Nach dem Login kopieren

Sobald die Installation abgeschlossen ist, können Sie mit dem folgenden Befehl überprüfen, ob Scrapy erfolgreich installiert wurde:

scrapy version
Nach dem Login kopieren

Wenn Sie eine Ausgabe ähnlich der „Scrapy x.x.x – kein aktives Projekt“ sehen ", dann wurde Scrapy erfolgreich installiert.

  1. Scrapy-Projekt erstellen

Bevor wir Scrapy verwenden, müssen wir ein Scrapy-Projekt erstellen. Geben Sie in der Befehlszeile den folgenden Befehl ein:

scrapy startproject jianshu
Nach dem Login kopieren

Dadurch wird ein Scrapy-Projekt mit dem Namen „jianshu“ im aktuellen Verzeichnis erstellt.

  1. Erstellen eines Scrapy-Crawlers

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"
Nach dem Login kopieren

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()
Nach dem Login kopieren

Wir können den folgenden Selektor verwenden, um den Artikelautor zu extrahieren:

response.css('a.name::text').extract_first()
Nach dem Login kopieren

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
Nach dem Login kopieren

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(),
            }
Nach dem Login kopieren
  1. Führen Sie den Scrapy-Crawler aus und geben Sie die Ergebnisse aus

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
Nach dem Login kopieren

Dieser Befehl führt unseren Crawler aus und speichert die Ausgabedaten in einer JSON-Datei namens „articles.json“.

  1. Fazit

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!

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