Per impostazione predefinita, Scrapy assegna gli slot di download in base al dominio dell'URL della richiesta. Assegnare a una richiesta un proxy HTTP non trasforma quell'URL nel nome host del proxy. Le richieste verso siti diversi possono quindi mantenere slot diversi pur condividendo un unico intermediario.

AutoThrottle regola il ritardo di ogni slot in base alla latenza di download osservata. Il limite standard di concorrenza per dominio e il ritardo minimo di download restano validi.

Controlla il raggruppamento prima di cambiare l'algoritmo

Un middleware personalizzato può assegnare request.meta["download_slot"], sostituendo la normale selezione dello slot. Alcune estensioni proxy usano un proprio raggruppamento. Esamina queste impostazioni se siti non correlati sembrano condividere un unico limitatore.

Al contrario, assegnare uno slot diverso a ogni proxy può consentire a più proxy di contattare lo stesso obiettivo contemporaneamente. Ciò può vanificare un limite a livello di sito che il crawler avrebbe dovuto rispettare. Scegli la chiave dello slot in base alla risorsa protetta.

Il ritardo include il percorso utilizzato

Scrapy misura la latenza dall'invio della richiesta alla ricezione delle intestazioni HTTP. Una richiesta trasportata tramite un proxy può includere in questa osservazione il ritardo di accodamento e inoltro dell'intermediario. AutoThrottle non ottiene un tempo di elaborazione separato solo per l'origine.

Aumentare la concorrenza non può far sì che quella misura isoli il sito. Mantieni la cortesia verso l'obiettivo e la capacità del proxy come limiti separati quando entrambi contano. Un proxy condiviso può richiedere un budget di concorrenza aggiuntivo tra gli slot degli obiettivi, mentre ogni obiettivo conserva la propria politica di velocità.

Articoli correlati