Un ragno può usare il proxy previsto sotto scrapy crawl e andare diretto quando viene avviato da uno script Python. Controlla come quello script costruisce le sue impostazioni prima di cambiare il server proxy.

Per un progetto Scrapy esistente e il suo ragno registrato:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()

Sostituisci catalog con il nome del ragno del progetto. Il progetto deve essere individuabile tramite il suo scrapy.cfg, oppure tramite un SCRAPY_SETTINGS_MODULE impostato correttamente che punta a un modulo di impostazioni importabile.

Costruire solo CrawlerProcess() non importa il file di impostazioni del progetto solo perché lo script importa anche una classe ragno. Di conseguenza un middleware personalizzato abilitato da DOWNLOADER_MIDDLEWARES può mancare in quella esecuzione.

Caricare le impostazioni fornisce i componenti configurati; non inventa un indirizzo proxy. Il middleware proxy HTTP di Scrapy necessita ancora del suo normale proxy d'ambiente o di un valore request.meta['proxy'] esplicito. Controlla che HTTPPROXY_ENABLED non lo abbia disabilitato. Per una scansione consentita di pagine pubbliche, la lista di proxy HTTP offre candidati per un valore di proxy HTTP fornito tramite quei metadati o l'ambiente.

Confronta le impostazioni caricate e il middleware attivo del launcher con l'esecuzione da riga di comando. Se coincidono, prosegui con i metadati proxy della richiesta scelta e l'effettivo errore di trasporto.

Articoli correlati