Pająk może używać oczekiwanego proxy w ramach scrapy crawl i przechodzi bezpośrednio, gdy uruchamia go skrypt Pythona. Sprawdź, jak ten skrypt buduje swoje ustawienia, zanim zmienisz serwer proxy.

Dla istniejącego projektu Scrapy i jego zarejestrowanego pająka:

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

Zastąp catalog nazwą pająka projektu. Projekt musi być wykrywalny przez swój scrapy.cfg lub przez poprawnie ustawiony SCRAPY_SETTINGS_MODULE wskazujący na importowalny moduł ustawień.

Samo utworzenie CrawlerProcess() nie importuje pliku ustawień projektu tylko dlatego, że skrypt importuje również klasę pająka. Dlatego niestandardowy middleware włączony przez DOWNLOADER_MIDDLEWARES może być nieobecny w tym uruchomieniu.

Załadowanie ustawień dostarcza skonfigurowane komponenty; nie wymyśla adresu proxy. Middleware proxy HTTP w Scrapy nadal potrzebuje zwykłego proxy środowiskowego lub jawnej wartości request.meta['proxy']. Sprawdź, czy HTTPPROXY_ENABLED go nie wyłączył. Do dozwolonego indeksowania stron publicznych lista proxy HTTP oferuje kandydatów na wartość proxy HTTP przekazywaną przez te metadane lub środowisko.

Porównaj załadowane ustawienia i aktywny middleware launchera z uruchomieniem z wiersza poleceń. Jeśli się zgadzają, kontynuuj z metadanymi proxy wybranego żądania i rzeczywistym błędem transportu.

Powiązane artykuły