Вчитување на Scrapy прокси поставките во CrawlerProcess скрипта
Предајте get_project_settings() на CrawlerProcess кога самостојниот стартер треба да ја користи истата middleware за преземање како scrapy crawl.
Пајакот може да го користи очекуваниот прокси под scrapy crawl и да оди директно кога го стартува Python скрипта. Проверете како таа скрипта ги гради своите поставки пред да го промените прокси серверот.
За постоечки Scrapy проект и неговиот регистриран пајак:
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()
Заменете catalog со името на пајакот на проектот. Проектот мора да биде пронајден преку неговиот scrapy.cfg или преку правилно поставен SCRAPY_SETTINGS_MODULE што покажува на модул за поставки што може да се увезе.
Самото создавање на CrawlerProcess() не ја увезува датотеката со поставки на проектот само затоа што скриптата увезува и класа на пајак. Затоа прилагодена middleware овозможена преку DOWNLOADER_MIDDLEWARES може да отсуствува од тоа извршување.
Вчитувањето на поставките ги обезбедува конфигурираните компоненти; тоа не измислува адреса на прокси. HTTP прокси middleware на Scrapy сè уште бара своето вообичаено прокси од околината или експлицитна вредност request.meta['proxy']. Проверете дали HTTPPROXY_ENABLED не го оневозможил. За дозволено пребарување на јавни страници, списокот на HTTP прокси нуди кандидати за вредност на HTTP прокси доставена преку тие метаподатоци или околината.
Споредете ги вчитаните поставки и активната middleware на стартерот со извршувањето од командната линија. Ако се совпаѓаат, продолжете со метаподатоците за прокси на избраното барање и вистинската транспортна грешка.