Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Scrapy zum Crawlen der Produktdaten von JD-Händlern

So verwenden Sie Scrapy zum Crawlen der Produktdaten von JD-Händlern

PHPz
PHPzOriginal
2023-06-23 08:01:231729Durchsuche

So verwenden Sie Scrapy zum Crawlen der Produktdaten von JD-Händlern

Scrapy ist ein leistungsstarkes Python-Webcrawler-Framework, mit dem wir einfach und bequem Code zum Crawlen von Webseitendaten schreiben können. In diesem Artikel wird erläutert, wie Sie mit Scrapy die Produktdaten von JD-Händlern crawlen.

Vorbereitung

Bevor wir mit dem Schreiben von Code beginnen, müssen wir einige Vorbereitungen treffen.

1. Scrapy installieren

Wenn Sie Scrapy noch nicht installiert haben, können Sie den folgenden Befehl in die Befehlszeile eingeben:

pip install Scrapy
2. Erstellen Sie ein Scrapy-Projekt

Öffnen Sie das Terminal und Geben Sie den folgenden Befehl ein:

scrapy startproject JDspider

Diese Befehlszeile erstellt ein Scrapy-Projekt namens JDspider im aktuellen Ordner.

3. Spider erstellen

In Scrapy ist Spider die Kernkomponente zum Crawlen von Daten. Wir müssen einen Spider erstellen, um die Produktdaten von JD-Händlern zu erhalten. Geben Sie den folgenden Befehl in die Befehlszeile ein:

cd JDspider
scrapy genspider JD jd.com

Hier verwenden wir den Befehl scrapy genspider, um einen Spider namens JD zu generieren und jd.com als Start-URL zu verwenden. Der generierte Code befindet sich in der Datei JDspider/spiders/JD.py. Jetzt müssen wir diese Datei bearbeiten, um den Crawler fertigzustellen.

Analysieren Sie die Zielwebsite.

Bevor wir Code schreiben, müssen wir zunächst die Zielwebsite analysieren. Nehmen wir als Beispiel https://mall.jd.com/index-1000000127.html.

Öffnen Sie den Chrome-Browser, drücken Sie die Taste F12, um die Entwicklertools zu öffnen, und klicken Sie dann auf die Registerkarte „Netzwerk“. Nach Eingabe der URL der Zielwebsite können wir die Anforderungs- und Antwortinformationen der Zielwebsite sehen.

Wir können feststellen, dass es AJAX-Technologie zum Laden von Produktlistendaten verwendet. Auf der Registerkarte „XMLHttpRequest“ können wir die URL der Anfrage sehen und die Daten wurden im JSON-Format zurückgegeben.

Wir können direkt auf diese URL zugreifen, um Produktinformationen zu erhalten.

Produktdaten abrufen

Wir wissen jetzt, wie man Produktinformationen erhält. Wir können Code in Spider hinzufügen, um diese Aufgabe abzuschließen.

Öffnen Sie zunächst die Datei JDspider/spiders/JD.py und suchen Sie die Definition der Spider-Klasse. Wir müssen diese Klasse ändern und ihren Namen, Domänennamen und die anfängliche URL definieren.

class JdSpider(scrapy.Spider):
    name = "JD"
    allowed_domains = ["jd.com"]
    start_urls = [
        "https://pro.jd.com/mall/active/3W9j276jGAAFpgx5vds5msKg82gX/index.html"
    ]

Beginnen Sie mit dem Scrapen von Daten. In Scrapy müssen wir die Methode parse() verwenden, um Webseitendaten abzurufen. Wir verwenden das JSON-Modul, um die zurückgegebenen JSON-Daten zu analysieren und die erforderlichen Informationen zu extrahieren. Hier erhalten wir Titel, Preis, Adresse und Mengeninformationen des Artikels.

    def parse(self, response):
        products = json.loads(response.body)['data']['productList']
        for product in products:
            title = product['name']
            price = product['pricer']
            address = product['storeName']
            count = product['totalSellCount']
            yield {
                'title': title,
                'price': price,
                'address': address,
                'count': count,
            }

Jetzt haben wir die Datenerfassung abgeschlossen. Wir können diesen Spider ausführen und die Ergebnisse in eine Datei ausgeben. Geben Sie den folgenden Befehl in das Terminal ein, um Spider auszuführen:

scrapy crawl JD -o products.json

    JD ist der Name des von uns erstellten Spiders;
  • -o ist die Ausgabeoption, die angibt, wo die gecrawlten Ergebnisse gespeichert werden sollen; Der Dateiname wird eingegeben und die Ergebnisse werden in dieser Datei gespeichert.
  • Dies ist ein einfaches Beispiel, das lediglich zeigt, wie man mit Scrapy die Produktdaten von JD-Händlern crawlt. In praktischen Anwendungen müssen wir möglicherweise eine komplexere Verarbeitung durchführen. Scrapy bietet viele leistungsstarke Tools und Module, um dies zu erreichen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Scrapy zum Crawlen der Produktdaten von JD-Händlern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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