En spindel kan använda den förväntade proxyn under scrapy crawl och går direkt när den startas av ett Python-skript. Kontrollera hur skriptet bygger sina inställningar innan du ändrar proxyservern.

För ett befintligt Scrapy-projekt och dess registrerade spindel:

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

Ersätt catalog med projektets spindelnamn. Projektet måste gå att hitta via sin scrapy.cfg, eller via en korrekt inställd SCRAPY_SETTINGS_MODULE som pekar på en importerbar inställningsmodul.

Att bara skapa CrawlerProcess() importerar inte projektets inställningsfil bara för att skriptet också importerar en spindelklass. Därför kan middleware som aktiveras av DOWNLOADER_MIDDLEWARES saknas i den körningen.

Inläsningen av inställningarna ger de konfigurerade komponenterna; den hittar inte på en proxyadress. Scrapys HTTP-proxymiddleware behöver fortfarande sin vanliga miljöproxy eller ett uttryckligt request.meta['proxy']-värde. Kontrollera att HTTPPROXY_ENABLED inte har inaktiverat den. För en tillåten genomsökning av offentliga sidor erbjuder HTTP-proxylistan kandidater för ett HTTP-proxyvärde som levereras via dessa metadata eller miljön.

Jämför startarens inlästa inställningar och aktiva middleware med kommandorads körningen. Om de stämmer överens, fortsätt med den valda begäran proxymetadata och det faktiska transportfelet.

Relaterade artiklar