Scrapy-설정
기술
Scrapy 구성 요소의 동작은 Scrapy 설정을 사용하여 수정할 수 있습니다. Scrapy 프로젝트가 여러 개인 경우 설정에서 현재 활성화 된 Scrapy 프로젝트를 선택할 수도 있습니다.
설정 지정
웹 사이트를 스크랩 할 때 사용중인 설정을 Scrapy에 알려야합니다. 이를 위해 환경 변수SCRAPY_SETTINGS_MODULE 사용되어야하며 그 값은 Python 경로 구문이어야합니다.
설정 채우기
다음 표는 설정을 채울 수있는 몇 가지 메커니즘을 보여줍니다.
Sr. 아니요 | 메커니즘 및 설명 |
---|---|
1 | Command line options 여기서 전달되는 인수는 다른 옵션을 재정 의하여 가장 높은 우선 순위를 갖습니다. -s는 하나 이상의 설정을 대체하는 데 사용됩니다. |
2 | Settings per-spider 스파이더는 custom_settings 속성을 사용하여 프로젝트 설정을 재정의하는 자체 설정을 가질 수 있습니다. |
삼 | Project settings module 여기에서 settings.py 파일의 설정 추가 또는 수정과 같은 사용자 지정 설정을 채울 수 있습니다. |
4 | Default settings per-command 각 Scrapy 도구 명령은 default_settings 속성에 자체 설정을 정의하여 전역 기본 설정을 재정의합니다. |
5 | Default global settings 이러한 설정은 scrapy.settings.default_settings 모듈에 있습니다. |
액세스 설정
self.settings를 통해 사용할 수 있으며 초기화 된 후 기본 스파이더에 설정됩니다.
다음 예제는이를 보여줍니다.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
스파이더를 초기화하기 전에 설정을 사용하려면 스파이더의 _init_ () 메서드 에서 from_crawler 메서드를 재정의해야합니다 . 당신은 속성을 통해 설정에 액세스 할 수 있습니다 scrapy.crawler.Crawler.settings 에 전달 from_crawler의 방법.
다음 예제는이를 보여줍니다.
class MyExtension(object):
def __init__(self, log_is_enabled = False):
if log_is_enabled:
print("Enabled log")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
이름 설정의 이유
설정 이름은 구성 요소에 접두사로 추가됩니다. 예를 들어 robots.txt 확장자의 경우 설정 이름은 ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR 등이 될 수 있습니다.
내장 설정 참조
다음 표는 Scrapy의 내장 설정을 보여줍니다-
Sr. 아니요 | 설정 및 설명 |
---|---|
1 | AWS_ACCESS_KEY_ID Amazon Web Services에 액세스하는 데 사용됩니다. 기본값 : 없음 |
2 | AWS_SECRET_ACCESS_KEY Amazon Web Services에 액세스하는 데 사용됩니다. 기본값 : 없음 |
삼 | BOT_NAME User-Agent 구축에 사용할 수있는 봇의 이름입니다. 기본값 : 'scrapybot' |
4 | CONCURRENT_ITEMS 병렬 처리에 사용되는 항목 프로세서의 최대 기존 항목 수입니다. 기본값 : 100 |
5 | CONCURRENT_REQUESTS Scrapy 다운로더가 수행하는 기존 요청의 최대 수입니다. 기본값 : 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN 단일 도메인에 대해 동시에 수행되는 기존 요청의 최대 수입니다. 기본값 : 8 |
7 | CONCURRENT_REQUESTS_PER_IP 단일 IP에 대해 동시에 수행되는 기존 요청의 최대 수입니다. 기본값 : 0 |
8 | DEFAULT_ITEM_CLASS 항목을 나타내는 데 사용되는 클래스입니다. 기본값 : 'scrapy.item.Item' |
9 | DEFAULT_REQUEST_HEADERS Scrapy의 HTTP 요청에 사용되는 기본 헤더입니다. 기본값- |
10 | DEPTH_LIMIT 스파이더가 모든 사이트를 크롤링 할 수있는 최대 깊이입니다. 기본값 : 0 |
11 | DEPTH_PRIORITY 깊이에 따라 요청의 우선 순위를 변경하는 데 사용되는 정수입니다. 기본값 : 0 |
12 | DEPTH_STATS 수심 통계 수집 여부를 나타냅니다. 기본값 : True |
13 | DEPTH_STATS_VERBOSE 이 설정을 활성화하면 요청 수가 각 상세 정보에 대한 통계로 수집됩니다. 기본값 : False |
14 | DNSCACHE_ENABLED 메모리 캐시에서 DNS를 활성화하는 데 사용됩니다. 기본값 : True |
15 | DNSCACHE_SIZE 메모리 캐시의 DNS 크기를 정의합니다. 기본값 : 10000 |
16 | DNS_TIMEOUT DNS가 쿼리를 처리 할 시간 제한을 설정하는 데 사용됩니다. 기본값 : 60 |
17 | DOWNLOADER 크롤링 프로세스에 사용되는 다운로더입니다. 기본값 : 'scrapy.core.downloader.Downloader' |
18 | DOWNLOADER_MIDDLEWARES 다운로더 미들웨어 및 주문을 보관하는 사전입니다. 기본값: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE 기본적으로 활성화되는 다운로더 미들웨어를 보관하는 사전입니다. 기본값- |
20 | DOWNLOADER_STATS 이 설정은 다운로더 통계를 활성화하는 데 사용됩니다. 기본값 : True |
21 | DOWNLOAD_DELAY 사이트에서 페이지를 다운로드하기 전에 다운로더의 총 시간을 정의합니다. 기본값 : 0 |
22 | DOWNLOAD_HANDLERS 다운로드 핸들러가있는 사전입니다. 기본값: {} |
23 | DOWNLOAD_HANDLERS_BASE 기본적으로 활성화되는 다운로드 핸들러가있는 사전입니다. 기본값- |
24 | DOWNLOAD_TIMEOUT 다운로더가 시간 초과되기 전에 대기하는 총 시간입니다. 기본값 : 180 |
25 | DOWNLOAD_MAXSIZE 다운로더가 다운로드 할 수있는 최대 응답 크기입니다. 기본값 : 1073741824 (1024MB) |
26 | DOWNLOAD_WARNSIZE 다운로더가 경고 할 응답 크기를 정의합니다. 기본값 : 33554432 (32MB) |
27 | DUPEFILTER_CLASS 중복 된 요청을 감지하고 필터링하는 데 사용되는 클래스입니다. 기본값 : 'scrapy.dupefilters.RFPDupeFilter' |
28 | DUPEFILTER_DEBUG 이 설정은 true로 설정된 경우 모든 중복 필터를 기록합니다. 기본값 : False |
29 | EDITOR edit 명령을 사용하여 스파이더를 편집하는 데 사용됩니다. 기본값 : 환경에 따라 다름 |
30 | EXTENSIONS 프로젝트에서 활성화 된 확장이있는 사전입니다. 기본값: {} |
31 | EXTENSIONS_BASE 확장 기능이 내장 된 사전입니다. 기본값 : { 'scrapy.extensions.corestats.CoreStats': 0,} |
32 | FEED_TEMPDIR 크롤러 임시 파일을 저장할 수있는 사용자 정의 폴더를 설정하는 데 사용되는 디렉토리입니다. |
33 | ITEM_PIPELINES 파이프 라인이있는 사전입니다. 기본값: {} |
34 | LOG_ENABLED 로깅을 사용할지 여부를 정의합니다. 기본값 : True |
35 | LOG_ENCODING 로깅에 사용할 인코딩 유형을 정의합니다. 기본값 : 'utf-8' |
36 | LOG_FILE 로깅 출력에 사용할 파일의 이름입니다. 기본값 : 없음 |
37 | LOG_FORMAT 로그 메시지를 형식화 할 수있는 문자열입니다. 기본값 : '% (asctime) s [% (name) s] % (levelname) s : % (message) s' |
38 | LOG_DATEFORMAT 날짜 / 시간을 형식화 할 수있는 문자열입니다. 기본값 : '% Y- % m- % d % H : % M : % S' |
39 | LOG_LEVEL 최소 로그 수준을 정의합니다. 기본값 : 'DEBUG' |
40 | LOG_STDOUT 이 설정을 true로 설정하면 모든 프로세스 출력이 로그에 나타납니다. 기본값 : False |
41 | MEMDEBUG_ENABLED 메모리 디버깅을 사용할지 여부를 정의합니다. 기본값 : False |
42 | MEMDEBUG_NOTIFY 메모리 디버깅이 활성화 된 경우 특정 주소로 전송되는 메모리 보고서를 정의합니다. 기본값: [] |
43 | MEMUSAGE_ENABLED Scrapy 프로세스가 메모리 제한을 초과 할 때 메모리 사용을 활성화할지 여부를 정의합니다. 기본값 : False |
44 | MEMUSAGE_LIMIT_MB 허용되는 메모리의 최대 한계 (MB)를 정의합니다. 기본값 : 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS 간격의 길이를 설정하여 현재 메모리 사용량을 확인하는 데 사용됩니다. 기본값 : 60.0 |
46 | MEMUSAGE_NOTIFY_MAIL 메모리가 한계에 도달하면 이메일 목록과 함께 알리는 데 사용됩니다. 기본값 : False |
47 | MEMUSAGE_REPORT 각 스파이더를 닫을 때 메모리 사용량 보고서를 보낼지 여부를 정의합니다. 기본값 : False |
48 | MEMUSAGE_WARNING_MB 경고를 보내기 전에 허용 할 총 메모리를 정의합니다. 기본값 : 0 |
49 | NEWSPIDER_MODULE genspider 명령을 사용하여 새로운 스파이더를 생성하는 모듈입니다. 기본값: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY 사이트에서 요청을 다운로드하는 동안 Scrapy가 기다리는 임의의 시간을 정의합니다. 기본값 : True |
51 | REACTOR_THREADPOOL_MAXSIZE 원자로 스레드 풀의 최대 크기를 정의합니다. 기본값 : 10 |
52 | REDIRECT_MAX_TIMES 요청을 리디렉션 할 수있는 횟수를 정의합니다. 기본값 : 20 |
53 | REDIRECT_PRIORITY_ADJUST 이 설정을 설정하면 요청의 리디렉션 우선 순위를 조정합니다. 기본값 : +2 |
54 | RETRY_PRIORITY_ADJUST 이 설정을 설정하면 요청의 재시도 우선 순위를 조정합니다. 기본값 : -1 |
55 | ROBOTSTXT_OBEY Scrapy는 true로 설정된 경우 robots.txt 정책을 준수 합니다 . 기본값 : False |
56 | SCHEDULER 크롤링 목적으로 사용할 스케줄러를 정의합니다. 기본값 : 'scrapy.core.scheduler.Scheduler' |
57 | SPIDER_CONTRACTS 거미를 테스트하기 위해 거미 계약을 맺은 프로젝트의 사전입니다. 기본값: {} |
58 | SPIDER_CONTRACTS_BASE Scrapy에서 기본적으로 활성화되는 Scrapy 계약을 보관하는 사전입니다. 기본값- |
59 | SPIDER_LOADER_CLASS 스파이더를로드하기 위해 SpiderLoader API 를 구현하는 클래스를 정의합니다 . 기본값 : 'scrapy.spiderloader.SpiderLoader' |
60 | SPIDER_MIDDLEWARES 거미 미들웨어를 담고있는 사전입니다. 기본값: {} |
61 | SPIDER_MIDDLEWARES_BASE Scrapy에서 기본적으로 활성화되는 스파이더 미들웨어를 보관하는 사전입니다. 기본값- |
62 | SPIDER_MODULES Scrapy가 찾을 거미를 포함하는 모듈 목록입니다. 기본값: [] |
63 | STATS_CLASS 통계 를 수집하기 위해 Stats Collector API를 구현하는 클래스입니다 . 기본값 : 'scrapy.statscollectors.MemoryStatsCollector' |
64 | STATS_DUMP 이 설정을 true로 설정하면 통계가 로그에 덤프됩니다. 기본값 : True |
65 | STATSMAILER_RCPTS 거미가 스크래핑을 마치면 Scrapy는이 설정을 사용하여 통계를 보냅니다. 기본값: [] |
66 | TELNETCONSOLE_ENABLED telnetconsole을 활성화할지 여부를 정의합니다. 기본값 : True |
67 | TELNETCONSOLE_PORT 텔넷 콘솔 용 포트를 정의합니다. 기본값 : [6023, 6073] |
68 | TEMPLATES_DIR 새 프로젝트를 만드는 동안 사용할 수있는 템플릿이 포함 된 디렉터리입니다. 기본값 : 스크래피 모듈 내부의 템플릿 디렉토리 |
69 | URLLENGTH_LIMIT 크롤링 된 URL에 허용되는 URL 길이의 최대 제한을 정의합니다. 기본값 : 2083 |
70 | USER_AGENT 사이트를 크롤링하는 동안 사용할 사용자 에이전트를 정의합니다. 기본값 : "Scrapy / VERSION (+ http : //scrapy.org)" |
다른 Scrapy 설정을 보려면이 링크 로 이동 하십시오 .