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
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 Scrapy2. Erstellen Sie ein Scrapy-Projekt Öffnen Sie das Terminal und Geben Sie den folgenden Befehl ein:
scrapy startproject JDspiderDiese Befehlszeile erstellt ein Scrapy-Projekt namens JDspider im aktuellen Ordner. 3. Spider erstellenIn 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.comHier 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 abrufenWir 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
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!