Nalaganje proxy nastavitev Scrapy v skript CrawlerProcess
Posredujte get_project_settings() v CrawlerProcess, ko mora samostojni zaganjalnik uporabljati isti middleware za prenašanje kot scrapy crawl.
Pajek lahko pod scrapy crawl uporablja pričakovani proxy in gre naravnost, ko ga zažene skript Python. Preden spremenite proxy strežnik, preverite, kako ta skript sestavlja svoje nastavitve.
Za obstoječi projekt Scrapy in njegovega registriranega pajka:
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()
Zamenjajte catalog z imenom pajka v projektu. Projekt mora biti najdljiv prek svojega scrapy.cfg ali prek pravilno nastavljenega SCRAPY_SETTINGS_MODULE, ki kaže na uvozljiv modul nastavitev.
Samo ustvarjanje CrawlerProcess() ne uvozi nastavitvene datoteke projekta le zato, ker skript uvozi tudi razred pajka. Zato lahko middleware, omogočen z DOWNLOADER_MIDDLEWARES, v tem zagonu manjka.
Nalaganje nastavitev zagotovi konfigurirane komponente; ne izmisli si proxy naslova. Scrapyjev middleware za proxy HTTP še vedno potrebuje običajni proxy iz okolja ali izrecno vrednost request.meta['proxy']. Preverite, ali ga HTTPPROXY_ENABLED ni onemogočil. Za dovoljeno brskanje po javnih straneh seznam proxyjev HTTP ponuja kandidate za vrednost proxyja HTTP, posredovano prek teh metapodatkov ali okolja.
Primerjajte naložene nastavitve in aktivni middleware zaganjalnika z zagonom iz ukazne vrstice. Če se ujemajo, nadaljujte z metapodatki proxyja izbrane zahteve in dejansko napako prenosa.