Scrapy proxybeállítások betöltése CrawlerProcess-szkriptbe
Add át a get_project_settings() eredményét a CrawlerProcessnek, ha egy önálló indítónak ugyanazt a letöltő middleware-t kell használnia, mint a scrapy crawl esetén.
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.