Der Scrapy-Prozess
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
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:
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:
Perfekte Spinne
Perfekte Spinne zur Durchführung der Datenextraktion und anderer Vorgänge über Methoden:
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
Warum 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
Pipelines 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!