2014-05-22 20 views
5

mam skrobanie off dane kilku tysięcy stron z ogólnym adresem URL:Jeśli otrzymam błąd 500 serwera wewnętrznego w Scrapy, w jaki sposób pominąłem URL?

http://example.com/database/?id=(some number) 

gdzie używam przez numerów identyfikacyjnych.

Ciągle napotykam olbrzymie fragmenty adresów URL, które generują błąd 500 wewnętrzny serwer, a scrapy z kilku powodów przechodzą przez te fragmenty kilka razy. To pochłania dużo czasu, więc zastanawiam się, czy istnieje sposób, aby od razu przejść do następnego adresu URL i nie mieć kilkukrotnych próśb o wysyłkę.

+0

http://doc.scrapy.org/en/latest/topics/downloader-middleware.html - Czy spojrzałeś na to? Wygląda na to, że ponawianie jest domyślnie włączone. Przejrzałem go jednak i nie przeczytałem go głęboko. – PyNEwbie

Odpowiedz

6

Błąd 500 błędów komponentu to RetryMiddleware.

Jeśli nie chcesz Scrapy aby ponowić wnioski, które otrzymały 500 kod stanu, w waszych settings.py można ustawić RETRY_HTTP_CODES nie obejmują 500 (domyślnie jest [500, 502, 503, 504, 400, 408]) lub wyłączyć RetryMiddleware łącznie z RETRY_ENABLED = False

Zobacz RetryMiddleware settings dla jeszcze.

+1

Wielkie dzięki, to zadziałało! – galilei