Beide Middleware kann Request und Response verarbeiten. Aber was ist der Unterschied?
Obwohl sie fast identische Schnittstellen haben, dienen sie verschiedenen Zwecken:
Downloader-Middlewares ändern Anforderungen und Antworten oder generieren als Reaktion auf Antworten Anforderungen. Sie interagieren nicht direkt mit Spinnen. Einige Beispiele sind Middlewares, die Cookies, Caching, Proxies, Redirects, User-Agent-Header usw. implementieren. Sie fügen dem Downloader-System nur Funktionen hinzu.
Spider-Middlewares modifizieren Dinge, die an Spiders übergeben werden, wie Requests, Items, Exceptions und start_requests
. Sie teilen einige grundlegende Funktionen mit Downloader-Middlewares, aber sie können keine Anfragen als Reaktion auf Antworten generieren. Sie stehen zwischen den Spinnen und dem Downloader. Ein Beispiel ist das Ausfiltern von Antworten mit schlechten HTTP-Statuscodes.
Einige Middlewares können entweder als Downloader-Middleware oder als Spider-Middleware funktionieren, aber sie sind oft trivial und werden in die eine oder andere Kategorie gezwungen, sobald Sie komplexere Funktionen hinzufügen.
Tags und Links python web-crawler scrapy