2015-06-04 9 views
6

Mamy dość standardowy projekt Scrapy (Scrapy 0.24).Złomowanie: łapanie odpowiedzi z określonymi kodami serwerów HTTP

Chciałbym złapać konkretne kody odpowiedzi HTTP, takie jak 200, 500, 502, 503, 504 itd

Coś takiego:

class Spider(...): 

    def parse(...): 
     processes HTTP 200 

    def parse_500(...): 
     processes HTTP 500 errors 

    def parse_502(...): 
     processes HTTP 502 errors 

    ... 

Jak możemy to zrobić?

Odpowiedz

9

Domyślnie Scrapy obsługuje tylko odpowiedzi z kodami stanu 200 - 300.

Let Scrapy handle 500 and 502:

class Spider(...): 
    handle_httpstatus_list = [500, 502] 

Następnie w parse() zwrotnego, sprawdź response.status:

def parse(response): 
    if response.status == 500: 
     # logic here 
    elif response.status == 502: 
     # logic here 
Powiązane problemy