Proxy per richiesta con il middleware proxy HTTP di Scrapy
Usate i metadati delle richieste di Scrapy e il suo middleware proxy prima di copiare un vecchio middleware di autenticazione personalizzato in un crawler.
Il middleware proxy HTTP di Scrapy legge un proxy dai metadati della richiesta:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Sostituite l'endpoint della documentazione e lasciate abilitato il middleware. L'elenco dei proxy HTTP offre candidati pubblici per l'URL di questa richiesta. Questo seleziona la rotta della richiesta; un pool di proxy richiede una logica di selezione separata.
L'autenticazione segue l'endpoint selezionato
Il middleware integrato gestisce le credenziali fornite tramite il suo URL proxy supportato e l'intestazione di autorizzazione associata. Efettiate i caratteri riservati dell'URL ed evitate di registrare quell'URL.
Un middleware separato non dovrebbe conservare un'intestazione Basic per il proxy precedente dopo il cambio di endpoint. Lasciate che un unico livello gestisca la rotta e le sue credenziali insieme.
Ordine di selezione e impostazioni predefinite
Se un middleware di download personalizzato sceglie il proxy, eseguitelo prima che il middleware proxy integrato elabori la richiesta. Controllate l'ordine e l'API della versione installata; le importazioni scrapy.contrib obsolete appartengono alle versioni precedenti.
Anche l'ambiente del processo può fornire impostazioni predefinite specifiche per schema. Per una richiesta deliberatamente diretta, usate il comportamento speciale documentato dei metadati proxy: una chiave assente non significa necessariamente accesso diretto.
Ispezionate il risultato effettivo. Un 407 riguarda l'autenticazione del proxy, mentre un limite di velocità o un rifiuto di accesso del sito possono arrivare dopo che la rotta ha funzionato correttamente.