Entrambi i middleware possono elaborare richiesta e risposta. Ma qual è la differenza?Qual è la differenza tra il middleware di Scrapy's spider e il middleware del downloader?
risposta
Mentre hanno interfacce quasi identici, hanno scopi differenti: middleware
Downloader modificano richieste e risposte o generano le richieste in risposta a risposte. Non interagiscono direttamente con i ragni. Alcuni esempi sono i middleware che implementano cookie, cache, proxy, reindirizzamenti, impostazione di intestazioni utente-agente, ecc. Aggiungono solo funzionalità al sistema di downloader.
Il middleware Spider modifica le cose che entrano ed escono da spider, come richieste, articoli, eccezioni, e
start_requests
. Condividono alcune funzionalità di base con i middleware del downloader, ma non possono generare richieste in risposta alle risposte. Si frappongono tra gli spider e il downloader. Un esempio è il filtraggio delle risposte con codici di stato HTTP errati.
Alcuni middleware in grado di funzionare sia come middleware downloader o un middleware ragno, ma sono spesso banali e saranno costretti in una categoria o l'altra volta si aggiunge la funzionalità più complessa.
Grazie per la soluzione che mi aiuta molto. Puoi per favore elaborare il ruolo di DOWNLOADER_MIDDLEWARES qui. @ Blender –
@MitchWheat: Può sembrare banale, ma è una buona domanda. – Blender
Non sembra avere alcun contenuto di programmazione: sembra una domanda per un motore di ricerca. –
@MitchWheat: la distinzione tra i due non è ovvia e non è spiegata nella documentazione. Scegliere downvotes e close vote non è di grande aiuto se non si comprende il framework coinvolto. – Blender