Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten?

Ausführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten?

WBOY
WBOYOriginal
2023-06-22 17:58:401817Durchsuche

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

  1. Ein Scrapy-Projekt erstellen

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.

  1. Start-URL festlegen

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.

  1. Antwortdaten analysieren

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.

  1. Führen Sie den Crawler aus

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

  1. Ein Scrapy-Projekt erstellen

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.

  1. Legen Sie die Start-URL fest

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.

  1. Antwortdaten analysieren

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.

  1. Führen Sie den Crawler aus

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

  1. Ein Scrapy-Projekt erstellen

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.

  1. Legen Sie die Start-URL fest

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.

  1. Antwortdaten analysieren

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.

  1. Führen Sie den Crawler aus

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!

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