- 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
Settings — Scrapy 2.4.1 documentation
Here’s a list of all available Scrapy settings, in alphabetical order, along with their default values and the scope where they apply. The scope, where available, shows where the setting is being used, if it’s tied to any particular component. In that
docs.scrapy.org
'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 |