관련이 있는지 없는지는 잘 모르겠지만 인라인 요청 라이브러리를 사용합니다.잘못된 요청 후 치료가 중지됨
사이트 API에 요청을 보내고 잘못된 요청 (400)을 반환하면 크롤러가 중지됩니다. 어떻게하면 계속 할 수 있을까요?
아래 예에서 ISBN은 '0046594062994'이며 책을 판매하지 않았기 때문에이 책이 없으므로 잘못된 요청을 반환합니다 (아래 URL을 입력 해보십시오) . 그들이 가지고있는 책들로 잘 작동합니다.
~~~~~~~~~
@EDIT : 내가 발견은 인라인 요청 알려진 문제입니다.
"미들웨어는 200이 아닌 상태 응답을 삭제하거나 무시할 수 있기 때문에 콜백이 실행을 계속할 수 없습니다.이 문제는 handle_httpstatus_all 플래그를 사용하여 극복 할 수 있습니다 (httperror 미들웨어 설명서 참조).
는 내가 의사가 말하는하려고 노력하지만, 그것을 어떻게 관리하지 않았다. 무엇이 잘못 되었나요? 예제 코드에 추가 된 행을 확인하십시오.
예제 코드 :
response2 = yield scrapy.Request("https://api.bookscouter.com/v3/prices/sell/0046594062994.json")
response2.meta['handle_httpstatus_all'] = True
jsonresponse = loads(response2.body)
을 확인해야합니다. 따라서 최신 버전의 Scrapy와 함께 사용하지 않는 것이 좋습니다. –
@ Tarun Lalwani 수정을 확인하십시오. – daniel
'yield scrapy.Request ("https://api.bookscouter.com/v3/prices/sell/0046594062994.json", meta = { 'handle_httpstatus_all': True})를 사용하십시오. –