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
Nach dem Login kopieren
2. Erstellen Sie ein Scrapy-Projekt
Öffnen Sie das Terminal und Geben Sie den folgenden Befehl ein:
scrapy startproject JDspider
Nach dem Login kopieren
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
Nach dem Login kopieren
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"
]
Nach dem Login kopieren
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,
}
Nach dem Login kopieren
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
Nach dem Login kopieren
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!