是的,我讀過,我可以檢查repsonse.status獲取錯誤代碼,但問題是,控制不會得到我的處理程序,例如, HTTP錯誤400:scrapy向日志報告,但沒有機會以我的方式處理請求。在下面的例子中,下一個請求是從'parse'完成的,並且錯誤被回覆到由'flight_search_start'處理的第二個請求。scrapy沒有得到錯誤的請求處理程序
def parse(self, response):
return scrapy.Request(
...
callback=self.flight_search_start,
)
def flight_search_start(self, response):
session = ...
if (self.checkError(response, session)):
return
def checkError(self, response, session):
if response.status == 200 or
response.status == 201 or response.status == 202:
return False
NEVER GET HERE!!!
print "Request failed!!! ",errorData(session)
return True
還有第二個問題:當我關掉我的路由器框架掛起很長一段時間,沒有報告任何錯誤。