Crawling

[크롤링/12]Scrapy HTTP 요청/캐시 설정

박한결 2021. 3. 25. 20:52

캐시 설정은 같은 요청을 반복할 때 상대 서버에 가는 부하를 줄일 수 있다. HTTP 캐시 설정을 활성화하면 첫 요청을 제외하고는 대상 서버가 아닌 저장된 캐시를 활용하게 된다. 또한 응답을 캐시에서 받으면 요청 사이에 대기 시간이 들어가지 않으므로 빠른 처리가 가능하다. 

 


1. HTTP 요청

공식 문서: docs.scrapy.org/en/latest/topics/settings.html?highlight=user_agent#user-agent

 

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

  • COOKIES_ENABLED(기본값 Trure)

쿠키 활성화 여부

 

  • COOKIES_DEBUG(기본값 False)

True로 지정하면 쿠키를 로그에 출력

 

  • REFERER_ENABLED(기본값 False)

요청에 레퍼러 헤더를 자동으로 포함할지 여부

 

  • DEFAULT_REQUESTS_HEADERS(기본값 True)

HTTP 요청에 기본적으로 포함될 헤더를 dict로 지정


2. HTTP 캐시 설정 

 

  • HTTPCACHE_ENABLED(기본값 False)

캐시 활성화 여부

 

  • HTTPCACHE_EXPIRATION_SECS(기본값 0)

캐시 유효 기간(단위 초, 0은 무한)

 

  • HTTPCACHE_DIR(기본값 httpcache)

캐시 저장 디렉토리 경로

 

  • HTTPCACHE_IGNORE_HTTP_CODES(기본값 [])

응답을 캐시하지 않을 HTTP 상태 코드를 리스트로 지정

 

  • HTTPCACHE_IGNORE_SCHEMES(기본값 ['file'])

응답을 캐시하지 않을 URL 스키마를 리스트로 지정

 

  • HTTPCACHE_IGNORE_MISSING(기본값 False)

True로 지정하면 요청이 캐시되어 있지 않은 경우 요청 무시

 

  • HTTPCACHE_POLICY(기본값 scrapy.extensions.httpcache.DummyPolicy)

캐시 정책을 나타내는 클래스

기본적으로 모든 응답을 캐시