Heim > Artikel > Backend-Entwicklung > Ausführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten?
Scrapy ist ein leistungsstarkes Python-Crawler-Framework, mit dem wir schnell und flexibel Daten im Internet abrufen können. Beim eigentlichen Crawling-Prozess stoßen wir häufig auf verschiedene Datenformate wie HTML, XML und JSON. In diesem Artikel stellen wir vor, wie man Scrapy zum Crawlen dieser drei Datenformate verwendet.
1. HTML-Daten crawlen
Zuerst müssen wir ein Scrapy-Projekt erstellen. Öffnen Sie die Befehlszeile und geben Sie den folgenden Befehl ein:
scrapy startproject myproject
Dieser Befehl erstellt ein Scrapy-Projekt namens myproject im aktuellen Ordner.
Als nächstes müssen wir die Start-URL festlegen. Erstellen Sie im Verzeichnis „myproject/spiders“ eine Datei mit dem Namen „spider.py“, bearbeiten Sie die Datei und geben Sie den folgenden Code ein:
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com'] def parse(self, response): pass
Der Code importiert zunächst die Scrapy-Bibliothek, definiert dann eine Crawler-Klasse „MySpider“ und richtet einen Spider mit dem Namen „myspider“ ein Geben Sie einen Namen ein und legen Sie eine Start-URL auf http://example.com fest. Abschließend wird eine Parse-Methode definiert. Die Parse-Methode wird von Scrapy standardmäßig aufgerufen, um Antwortdaten zu verarbeiten.
Als nächstes müssen wir die Antwortdaten analysieren. Bearbeiten Sie die Datei myproject/spiders/spider.py weiter und fügen Sie den folgenden Code hinzu:
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com'] def parse(self, response): title = response.xpath('//title/text()').get() yield {'title': title}
Im Code verwenden wir die Methode „response.xpath()“, um den Titel auf der HTML-Seite abzurufen. Verwenden Sie yield, um Daten vom Typ Wörterbuch zurückzugeben, einschließlich des von uns erhaltenen Titels.
Zuletzt müssen wir den Scrapy-Crawler ausführen. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy crawl myspider -o output.json
Dieser Befehl gibt die Daten in die Datei „output.json“ aus.
2. XML-Daten crawlen
Ebenso müssen wir zuerst ein Scrapy-Projekt erstellen. Öffnen Sie die Befehlszeile und geben Sie den folgenden Befehl ein:
scrapy startproject myproject
Dieser Befehl erstellt ein Scrapy-Projekt namens myproject im aktuellen Ordner.
Erstellen Sie im Verzeichnis „myproject/spiders“ eine Datei mit dem Namen „spider.py“, bearbeiten Sie die Datei und geben Sie den folgenden Code ein:
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/xml'] def parse(self, response): pass
Im Code legen wir einen Spider-Namen mit dem Namen „myspider“ fest. und legen Sie eine Start-URL auf http://example.com/xml fest.
Bearbeiten Sie weiterhin die Datei myproject/spiders/spider.py und fügen Sie den folgenden Code hinzu:
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/xml'] def parse(self, response): for item in response.xpath('//item'): yield { 'title': item.xpath('title/text()').get(), 'link': item.xpath('link/text()').get(), 'desc': item.xpath('desc/text()').get(), }
Im Code verwenden wir die Methode „response.xpath()“, um die Daten im zu erhalten XML-Seite. Verwenden Sie eine for-Schleife, um das Element-Tag zu durchlaufen, die Textdaten in den drei Tags Titel, Link und Desc abzurufen und verwenden Sie yield, um Daten vom Typ Wörterbuch zurückzugeben.
Schließlich müssen wir auch den Scrapy-Crawler ausführen. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy crawl myspider -o output.json
Dieser Befehl gibt die Daten in die Datei „output.json“ aus.
3. JSON-Daten crawlen
Ebenso müssen wir ein Scrapy-Projekt erstellen. Öffnen Sie die Befehlszeile und geben Sie den folgenden Befehl ein:
scrapy startproject myproject
Dieser Befehl erstellt ein Scrapy-Projekt namens myproject im aktuellen Ordner.
Erstellen Sie im Verzeichnis „myproject/spiders“ eine Datei mit dem Namen „spider.py“, bearbeiten Sie die Datei und geben Sie den folgenden Code ein:
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/json'] def parse(self, response): pass
Im Code legen wir einen Spider-Namen mit dem Namen „myspider“ fest. und legen Sie eine Start-URL auf http://example.com/json fest.
Bearbeiten Sie weiterhin die Datei myproject/spiders/spider.py und fügen Sie den folgenden Code hinzu:
import scrapy import json class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com/json'] def parse(self, response): data = json.loads(response.body) for item in data['items']: yield { 'title': item['title'], 'link': item['link'], 'desc': item['desc'], }
Im Code verwenden wir die Methode json.loads(), um die Daten in JSON zu analysieren Format. Verwenden Sie eine for-Schleife, um das Elementarray zu durchlaufen, die drei Attribute jedes Elements abzurufen: Titel, Link und Desc, und verwenden Sie yield, um Daten vom Typ Wörterbuch zurückzugeben.
Schließlich müssen Sie auch den Scrapy-Crawler ausführen. Geben Sie in der Befehlszeile den folgenden Befehl ein:
scrapy crawl myspider -o output.json
Dieser Befehl gibt die Daten in die Datei „output.json“ aus.
4. Zusammenfassung
In diesem Artikel haben wir vorgestellt, wie man Scrapy zum Crawlen von HTML-, XML- und JSON-Daten verwendet. Anhand der obigen Beispiele können Sie die grundlegende Verwendung von Scrapy verstehen und bei Bedarf auch die erweiterte Verwendung vertiefen. Ich hoffe, dass es Ihnen bei der Crawler-Technologie helfen kann.
Das obige ist der detaillierte Inhalt vonAusführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!