Павук можа выкарыстоўваць чаканы 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 выбранага запыту і фактычнай памылкай перадачы.

Падобныя артыкулы