Загрузка налад proxy Scrapy у скрыпт CrawlerProcess
Перадайце get_project_settings() у CrawlerProcess, калі аўтаномны запускальнік павінен выкарыстоўваць той жа прамежкавы модуль загрузкі, што і scrapy crawl.
Павук можа выкарыстоўваць чаканы proxy пад scrapy crawl і ісці напроста, калі яго запускае скрыпт Python. Праверце, як гэты скрыпт будуе свае налады, перш чым змяняць proxy-сервер.
Для існуючага праекта 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() не імпартуе файл налад праекта толькі таму, што скрыпт таксама імпартуе клас павука. Таму ўласны прамежкавы модуль, уключаны праз DOWNLOADER_MIDDLEWARES, можа адсутнічаць у гэтым запуску.
Загрузка налад дае наладжаныя кампаненты; яна не выдумляе адрас proxy. Прамежкавы модуль HTTP-proxy Scrapy па-ранейшаму патрабуе звычайны proxy асяроддзя або яўнае значэнне request.meta['proxy']. Праверце, што HTTPPROXY_ENABLED яго не адключыў. Для дазволенага абходу публічных старонак спіс HTTP-proxy дае кандыдатаў для значэння HTTP-proxy, якое перадаецца праз гэтыя метаданыя або асяроддзе.
Параўнайце загружаныя налады запускальніка і актыўны прамежкавы модуль з запускам праз камандны радок. Калі яны супадаюць, працягвайце з метаданымі proxy выбранага запыту і фактычнай памылкай перадачы.