Heim > Backend-Entwicklung > Python-Tutorial > Einführung und Verwendung von Python-Crawler-Scrapy

Einführung und Verwendung von Python-Crawler-Scrapy

angryTom
Freigeben: 2019-11-29 15:56:29
nach vorne
5244 Leute haben es durchsucht

Der Scrapy-Prozess

Einführung und Verwendung von Python-Crawler-Scrapy

Der Prozess kann wie folgt beschrieben werden:

● Der Scheduler verarbeitet Anfragen--> ;Engine- ->Middleware herunterladen--->Downloader

● Der Downloader sendet eine Anfrage und erhält eine Antwort---->Middleware herunterladen---->Engine---> Crawler-Mittelteile--->Crawler

● Der Crawler extrahiert die URL-Adresse und fügt sie zu einem Anforderungsobjekt zusammen---->Crawler-Middleware--->Engine--->Scheduler

● Crawler extrahiert Daten--->Engine--->Pipeline

● Pipeline verarbeitet und speichert Daten

Empfohlenes Lernen: Python-Video-Tutorial

Hinweis:

Die grünen Linien im Bild stellen die Datenübertragung dar

Achten Sie auf die Position der Middleware im Bild, die ihre Rolle bestimmt

Achten Sie auf die Engine-Position, alle Module waren zuvor unabhängig voneinander und interagierten nur mit der Engine

Die spezifische Rolle jedes Moduls in Scrapy

Einführung und Verwendung von Python-Crawler-Scrapy

1. Scrapy-Projekt Implementierungsprozess

Erstellen Sie ein Scrapy-Projekt: scrapy startproject Projektname

Erstellen Sie einen Crawler: scrapy genspider Der Crawler-Name ermöglicht das Crawlen Bereich

zum Extrahieren von Daten: Spider verbessern, XPath und andere Methoden verwenden

Daten speichern: Daten in der Pipeline speichern

2. Scrapy-Projekt erstellen

Befehl: scrapy startproject +< ;Projektname>

Beispiel: scrapy startproject myspider

Die generierten Verzeichnis- und Dateiergebnisse lauten wie folgt:

Einführung und Verwendung von Python-Crawler-Scrapy

settings.py Schlüsselfelder und Konnotationen

● USER_AGENT Legen Sie ua fest

● ROBOTSXT_OBEY Gibt an, ob das Roboterprotokoll eingehalten werden soll. Die Standardeinstellung ist die Einhaltung von

● CONCURRENT_REQUESTS Legen Sie die Anzahl gleichzeitiger Anfragen fest, der Standardwert ist 16

● DOWNLOAD_DELAY Download-Verzögerung, standardmäßig keine Verzögerung

● COOKIES_ENABLED Ob Cookies aktiviert werden sollen, d Cookie, die Standardeinstellung ist aktiviert

● DEFAULT_REQUEST_HEADERS Legen Sie den Standard-Anforderungsheader fest

● SPIDER_MIDDLEWARES Crawler-Middleware, der Einstellungsprozess ist der gleiche wie bei der Pipeline

● DOWNLOADER_MIDDLEWARES Download-Middleware

Crawler erstellen

Befehl: scrapy genspider + +

Das Verzeichnis und die Dateiergebnisse generiert werden, sind wie folgt:

Einführung und Verwendung von Python-Crawler-Scrapy

Perfekte Spinne

Perfekte Spinne zur Durchführung der Datenextraktion und anderer Vorgänge über Methoden:

Einführung und Verwendung von Python-Crawler-Scrapy

Hinweis:

● Das Rückgabeergebnis der Antwortliste

● extract_first() gibt den ersten String in der Liste zurück . Wenn die Liste leer ist, wird „None“ nicht zurückgegeben

● Die Parse-Methode in Spider muss

● Die URL-Adresse, die gecrawlt werden muss, muss zu „allowed_domains“ gehören, aber die URL-Adresse in start_urls hat diese Einschränkung nicht

● Achten Sie beim Starten des Crawlers auf den Startort, er wird im Projektpfad gestartet

Daten werden an die Pipeline übergeben

Einführung und Verwendung von Python-Crawler-ScrapyWarum Yield verwenden?

● Welche Vorteile bietet es, die gesamte Funktion in einen Generator umzuwandeln?

● Beim Durchlaufen des Rückgabewerts dieser Funktion werden die Daten einzeln in den Speicher eingelesen, wodurch die momentane Speichernutzung nicht zu hoch wird.

● Der Bereich in Python3 beträgt das gleiche wie xrange in Python2

Hinweis:

Die Objekte, die yield nur übergeben können, sind: BaseItem, Request, dict, None

6 Pipeline

Einführung und Verwendung von Python-Crawler-Scrapy

Einführung und Verwendung von Python-Crawler-ScrapyPipelines können in den Einstellungen aktiviert werden. Warum müssen Sie mehrere Pipelines aktivieren?

● Verschiedene Pipelines können Daten von verschiedenen Crawlern verarbeiten

● Verschiedene Pipelines können unterschiedliche Datenverarbeitungsvorgänge ausführen, beispielsweise einen zur Datenbereinigung und einen zum Datenspeichern

Hinweise zur Verwendung der Pipeline

● Sie müssen sie vor der Verwendung in den Einstellungen aktivieren

● Der Schlüssel in der Einstellung der Pipeline stellt die Position dar (dh die Position der Pipeline im Projekt kann angepasst werden), und der Wert stellt den Abstand vom Motor dar. Je näher die Daten sind, desto schneller Die Daten werden durchlaufen

● Es gibt mehrere Pipelines. Die Methode „process_item“ muss ein Element zurückgeben, andernfalls sind die von der nächsten Pipeline erhaltenen Daten Kein Wert

● Die Methode „process_item“ in der Pipeline muss vorhanden sein, andernfalls kann das Element nicht akzeptiert und verarbeitet werden

● process_item Die Methode akzeptiert Element und Spider, wobei Spider den Spider darstellt, der gerade das Element durchläuft

Dieser Artikel stammt aus dem Python-Tutorial Kolumne, willkommen zum Lernen!

Das obige ist der detaillierte Inhalt vonEinführung und Verwendung von Python-Crawler-Scrapy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage