Pavouk může za scrapy crawl použít očekávanou proxy a při spuštění pythonovým skriptem jít přímo. Než změníte proxy server, zkontrolujte, jak tento skript sestavuje svá nastavení.

Pro existující projekt Scrapy a jeho registrovaného pavouka:

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

Nahraďte catalog názvem pavouka v projektu. Projekt musí být dohledatelný přes svůj scrapy.cfg nebo přes správně nastavený SCRAPY_SETTINGS_MODULE odkazující na importovatelný modul nastavení.

Pouhé vytvoření CrawlerProcess() neimportuje soubor nastavení projektu jen proto, že skript také importuje třídu pavouka. Vlastní middleware povolený přes DOWNLOADER_MIDDLEWARES proto v daném běhu může chybět.

Načtení nastavení dodá nakonfigurované komponenty; nevymyslí adresu proxy. Middleware HTTP proxy v Scrapy stále potřebuje obvyklou proxy z prostředí nebo explicitní hodnotu request.meta['proxy']. Zkontrolujte, že ji HTTPPROXY_ENABLED nevypnul. Pro povolené procházení veřejných stránek seznam HTTP proxy nabízí kandidáty pro hodnotu HTTP proxy předanou přes tato metadata nebo prostředí.

Porovnejte načtená nastavení a aktivní middleware spouštěče s během z příkazového řádku. Pokud se shodují, pokračujte s metadaty proxy vybraného požadavku a skutečnou chybou přenosu.

Související články