En edderkop kan bruge den forventede proxy under scrapy crawl og gå direkte, når den startes af et Python-script. Kontroller, hvordan scriptet opbygger sine indstillinger, før du ændrer proxyserveren.

For et eksisterende Scrapy-projekt og dets registrerede edderkop:

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()

Erstat catalog med projektets edderkopnavn. Projektet skal kunne findes via sin scrapy.cfg eller via en korrekt sat SCRAPY_SETTINGS_MODULE, der peger på et importerbart indstillingsmodul.

At oprette CrawlerProcess() alene importerer ikke projektets indstillingsfil, blot fordi scriptet også importerer en edderkopklasse. Derfor kan middleware, der er aktiveret af DOWNLOADER_MIDDLEWARES, mangle i den kørsel.

Indlæsning af indstillingerne leverer de konfigurerede komponenter; den opfinder ikke en proxyadresse. Scrapys HTTP-proxymiddleware har stadig brug for sin normale miljøproxy eller en eksplicit request.meta['proxy']-værdi. Kontroller, at HTTPPROXY_ENABLED ikke har deaktiveret den. Til en tilladt gennemgang af offentlige sider giver HTTP-proxylisten kandidater til en HTTP-proxyværdi, der leveres via de metadata eller det miljø.

Sammenlign starterens indlæste indstillinger og aktive middleware med kommandolinjekørslen. Hvis de stemmer overens, fortsæt med den valgte anmodnings proxy-metadata og den faktiske transportfejl.

Relaterede artikler