- RETRY_ENABLED(기본값 True)
타임아웃 또는 HTTP 상태 코드 500 등이 발생했을 때d 자동으로 재시도할지 여부
이 설정과 관계 없이 Request.meta 속성으로 dont_rety 키 값을 True로 지정하면 해당 요청은 재시도하지 않는다.
yield scrapy.Requests(url, meta={'dont_retry': True})
잘못된 응답 또는 데이터 손실 오류는 서버 구성 오류에서 네트워크 오류, 데이터 손상에 이르기까지 여러 상황에서 발생할 수 있다. 깨진 응답이 부분적이거나 불완전한 내용을 포함 할 수 있다는 점을 고려하여 깨진 응답을 처리하는 것이 합리적 일지 결정하는 것은 사용자의 몫이다.
- RETRY_TIMES(기본값 2)
재시도 최대 횟수
재시도 횟수가 2라는건 처음 요청 1회, 재시도 2회로 최대 3회의 요청을 보낸다는 거다.
- RETRY_HTTP_CODES(기본값 [500, 502, 503, 504, 408])
재시도 대상 HTTP 상태 코드
- HTTPERROR_ALLOWED_CODES(기본값 [])
오류로 취급하지 않을 HTTP 상태 코드
class MySpider(scrapy.Spider):
handle_httpstatus_list = [404]
# 또는
yield scrapy.Request(url, meta={'handle_httpstatus_list': [404]})
handle_httpstatus_list 속성을 사용하면 Spider별로 지정 가능하다.
Requests.meta 속성의 handle_httpstatus_list라는 키로도 지정 가능하다.
HTTPERROR_ALLOW_ALL(기본값 False)
yield scrapy.Requests(url, meta={'handle_httpstatus_all': True})
True로 지정하면 모든 상태 코드를 오류로 취급하지 않고, 콜백 함수에서 처리할 수 있게 된다.
공식문서: docs.scrapy.org/en/latest/topics/settings.html?highlight=RETRY_ENABLED#download-fail-on-dataloss
'Crawling' 카테고리의 다른 글
[크롤링/15] 크롤러 서버에서 운용하기(Windows/Ubuntu) (0) | 2021.03.26 |
---|---|
[크롤링/14]Scrapy로 Javascript 사용한 페이지 크롤링하기(Splash) (1) | 2021.03.25 |
[크롤링/12]Scrapy HTTP 요청/캐시 설정 (0) | 2021.03.25 |
[크롤링/11]Scrapy 병렬 처리 설정 (2) | 2021.03.25 |
[크롤링/10]Scrapy로 크롤링 대상 사이트에 피해주지 않는 설정하기 (0) | 2021.03.25 |