Egy pók a scrapy crawl alatt a várt proxyt használhatja, Python-szkriptből indítva viszont közvetlenül megy. Ellenőrizze, hogyan építi fel a szkript a beállításait, mielőtt módosítaná a proxykiszolgálót.

Egy meglévő Scrapy-projekthez és annak regisztrált pókjához:

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

Cserélje ki a catalog helyére a projekt póknevét. A projektnek a scrapy.cfg fájlján keresztül, vagy egy importálható beállításmodulra mutató, helyesen beállított SCRAPY_SETTINGS_MODULE segítségével felfedezhetőnek kell lennie.

Önmagában a CrawlerProcess() létrehozása nem importálja a projekt beállításfájlját csak azért, mert a szkript pókosztályt is importál. Emiatt a DOWNLOADER_MIDDLEWARES által engedélyezett egyéni middleware hiányozhat abból a futásból.

A beállítások betöltése biztosítja a beállított összetevőket; nem talál ki proxycímet. A Scrapy HTTP-proxy middleware-ének továbbra is szüksége van a szokásos környezeti proxyra vagy egy explicit request.meta['proxy'] értékre. Ellenőrizze, hogy a HTTPPROXY_ENABLED nem kapcsolta-e ki. Engedélyezett nyilvános oldalak bejárásához a HTTP-proxylista jelölteket kínál az ezen metaadatokon vagy környezeten keresztül átadott HTTP-proxy értékhez.

Hasonlítsa össze az indító betöltött beállításait és aktív middleware-ét a parancssori futással. Ha megegyeznek, folytassa a kiválasztott kérés proxy-metaadataival és a tényleges átviteli hibával.

Kapcsolódó cikkek