Beide Middleware kann Request und Response verarbeiten. Aber was ist der Unterschied?Was ist der Unterschied zwischen Scrapys Spider Middleware und Downloader Middleware?
Antwort
Während sie fast identische Schnittstellen haben, sie dienen unterschiedlichen Zwecken:
Downloader Middle ändern Anfragen und Antworten oder generieren Anfragen in Reaktion auf Antworten. Sie interagieren nicht direkt mit Spinnen. Einige Beispiele sind Middlewares, die Cookies, Caching, Proxies, Redirects, das Setzen von User-Agent-Headern usw. implementieren. Sie fügen dem Downloader-System nur Funktionen hinzu.
Spider-Middlewares modifizieren Dinge, die an Spinnen übergeben werden, wie Anfragen, Artikel, Ausnahmen 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 Middle kann entweder als Download-Middleware-Funktion oder eine Spinne Middleware, aber sie sind oft trivial und wird in einer Kategorie oder der anderen gezwungen werden, sobald Sie komplexere Funktionen hinzufügen.
Danke für die Lösung, die mir sehr hilft. Kannst du bitte die Rolle von DOWNLOADER_MIDDLEWARES hier erläutern. @ Blender –
- 1. Laravel: Unterschied zwischen Route Middleware und Politik
- 2. django Middleware Unterschied zwischen process_request und process_view
- 3. Unterschied zwischen HTTP-Modul und OWIN Middleware
- 4. Unterschied zwischen 'Web' und 'Auth' Middleware?
- 5. Was ist nachrichtenorientierte Middleware?
- 6. Was ist der Unterschied zwischen Middleware "Session" und "cookieSession" in Connect/Express?
- 7. Was ist der Unterschied zwischen Application- und Router-Level - Middleware beim Routing in Express?
- 8. Unterschied zwischen App, Dienste und Middleware in mvc6
- 9. Restify Middleware - korrekte nächste Middleware im Stack
- 10. Kann benutzerdefinierte Downloader-Middleware in Scrapy nicht definieren
- 11. Was ist der Unterschied zwischen API Gateway und ESB?
- 12. Express Middleware: app.use und app.all
- 13. Ist Tomcat Middleware?
- 14. Spring- und Middleware-Konflikt?
- 15. Was bedeutet Middleware für Twitter und Scala?
- 16. Middleware überschreibt andere Middleware in Laravel
- 17. Laravel Middleware-Parameter innerhalb einer Middleware-Gruppe
- 18. Was ist der Unterschied zwischen `==` und `ist`?
- 19. Laravel: spezifische Middleware nach Auth Middleware ausführen
- 20. Was ist der Unterschied zwischen app.use und app.get mit express.static?
- 21. Was ist der Unterschied zwischen Pass und oauth?
- 22. Laravel Middleware
- 23. Symfony2 Middleware
- 24. Was ist der Unterschied zwischen:.! und: r !?
- 25. Was ist der Unterschied zwischen Difftime und '-'?
- 26. Was ist der Unterschied zwischen $ und $$?
- 27. Was ist der Unterschied zwischen Verilog! und ~?
- 28. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 29. Was ist der Unterschied zwischen/* ... */und/** ... */
- 30. Was ist der Unterschied zwischen `&` und `ref`?
@MitchWheat: Es mag trivial aussehen, aber es ist eine gute Frage. – Blender
Scheint keinen Programminhalt zu haben: sieht wie eine Frage für eine Suchmaschine aus. –
@MitchWheat: Die Unterscheidung zwischen den beiden ist nicht offensichtlich und wird nicht in der Dokumentation erläutert. Es ist nicht wirklich hilfreich, Downvotes abzuspielen und Stimmen zu schließen, wenn Sie das Framework nicht verstehen. – Blender