Un barattolo di cookie Scrapy appartiene a una sessione, non automaticamente a un proxy
Scegliete un’identità esplicita del barattolo di cookie quando più flussi con proxy condividono un ragno, e portate quell’identità alle richieste successive.
Cambiare proxy non cambia automaticamente i cookie del ragno. Può essere utile per una sessione che continua e sorprendente quando più sessioni indipendenti condividono lo stesso ragno.
Il middleware dei cookie di Scrapy supporta barattoli separati selezionati dai metadati cookiejar della richiesta. Date a quella chiave l’identità che intendete davvero conservare:
yield scrapy.Request(
'https://example.com/start',
meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)
L’endpoint e la chiave del barattolo sono scelte indipendenti. Una scansione pubblica non autenticata può prendere il proprio endpoint HTTP scelto dalla lista di proxy HTTP dove quella rotta è consentita; il flusso di lavoro possiede comunque la chiave del barattolo. Una richiesta successiva che deve restare in questa sessione ha bisogno della stessa chiave di barattolo; i metadati non si attaccano automaticamente a ogni nuova richiesta che create. Propagate i campi specifici richiesti dal flusso di lavoro invece di copiare ciecamente tutti i metadati del middleware.
Usare l’indirizzo del proxy come chiave del barattolo è solo una politica
Quella scorciatoia raggruppa lo stato per endpoint. Non necessariamente lo raggruppa per persona, account o uscita pubblica. Un endpoint del fornitore può ruotare le uscite e più account possono usare lo stesso endpoint.
Per un flusso di lavoro autorizzato che necessita di stato stabile, annotate separatamente l’identificatore di account/sessione, l’identificatore del barattolo e la rotta scelta. Se decidete di cambiare rotta a metà strada, decidete anche cosa deve accadere alla sessione dell’applicazione.
Barattoli separati impediscono la condivisione accidentale dei cookie tra i gruppi che avete definito. Non promettono che una destinazione non possa collegare due richieste tramite un account o altri dati dell’applicazione.
Se la pagina sbagliata persiste dopo il cambio di IP, ispezionate quale barattolo ha inviato la richiesta prima di eliminare tutti i cookie o sostituire l’intero pool di proxy. Lo stato conservato può spiegare la pagina perfettamente.