設定¶
Scrapyの設定では, コア, 拡張機能, パイプライン, スパイダー自体を含むすべての Scrapy コンポーネントの動作をカスタマイズすることができます.
設定のインフラストラクチャは, コードで値を取得するために使用できる, キーと値のマッピングのグローバルな名前空間を提供します. この設定は, 以下で説明するさまざまなメカニズムによって設定できます.
この設定は, 現在アクティブなScrapyプロジェクトを選択するためのメカニズムでもあります.
使用可能なビルトイン設定のリストについては, ビルトイン設定リファレンス を参照してください.
設定を指定する¶
Scrapyを使用するときは, 環境変数 SCRAPY_SETTINGS_MODULE
を使用して, 設定を Scrapy に教えてください.
SCRAPY_SETTINGS_MODULE
の値はPythonのパス構文でなければなりません, e.g.
myproject.settings
. 設定モジュールは, Pythonの インポートサーチパス 上にある必要があります.
設定を入力する¶
設定は, それぞれ異なる優先順位を持つ異なるメカニズムを使用しています. 以下は優先順位の高い順にリストされています:
- コマンドラインオプション(優先度高)
- スパイダーごとの設定
- プロジェクト設定モジュール
- コマンドごとのデフォルト設定
- デフォルトのグローバル設定(優先度低)
これら設定の優先度は内部的に処理されますが, API呼び出しを使用して手動で処理することが可能です. 設定 API を参照してください.
これらのメカニズムは, 以下でより詳細に説明します.
1. コマンドラインオプション¶
コマンドラインで提供される引数は, 他のオプションよりも優先されます.
-s
(または --set
) コマンドラインオプションを使用して, 1つ(またはそれ以上)の設定を明示的に上書きすることができます.
例:
scrapy crawl myspider -s LOG_FILE=scrapy.log
2. スパイダーごとの設定¶
スパイダー ( スパイダー を参照) は, 独自の設定を定義して優先順位を上げることができます.
これは, custom_settings
属性に設定することで可能です:
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'SOME_SETTING': 'some value',
}
3. プロジェクト設定モジュール¶
プロジェクト設定モジュールは, Scrapyプロジェクトの標準設定ファイルです.
カスタム設定の大部分が設定されます.
標準の Scrapy プロジェクトでは, プロジェクト用に作成された settings.py
ファイルの設定を追加または変更することになります.
4. コマンドごとのデフォルト設定¶
各 Scrapy ツール コマンドには独自のデフォルト設定があり,
グローバルなデフォルト設定を上書きします.
これらのカスタムコマンド設定は, default_settings
属性で指定されます.
5. デフォルトのグローバル設定¶
グローバルなデフォルト設定は scrapy.settings.default_settings
モジュールにあり, ビルトイン設定リファレンス に記載されています.
設定にアクセスする方法¶
スパイダーでは, 設定は self.settings
で取得することができます:
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
注釈
settings
属性は, スパイダーが初期化された後,
ベース Spider クラスに設定されます.
初期化の前に設定を使用する場合(たとえば, スパイダーの __init__()
メソッド),
from_crawler()
メソッドをオーバーライドする必要があります.
設定は, 拡張機能, ミドルウェアおよびアイテムパイプラインの from_crawler
メソッドに渡される,
クローラの scrapy.crawler.Crawler.settings
属性を介してアクセスできます.
class MyExtension(object):
def __init__(self, log_is_enabled=False):
if log_is_enabled:
print("log is enabled!")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
設定オブジェクトは dict'' (例: ``settings['LOG_ENABLED']
) のように使用できますが,
Settings
API で提供されるメソッドの1つを使用して,
タイプエラーを回避するために必要な形式で設定を抽出することをお勧めします.
名前を設定する理由¶
設定名には通常, 構成するコンポーネントの接頭辞が付いています.
例えば, 架空の robots.txt
拡張子の適切な設定名は
ROBOTSTXT_ENABLED
, ROBOTSTXT_OBEY
, ROBOTSTXT_CACHEDIR
などです.
ビルトイン設定リファレンス¶
ここでは, アルファベット順に使用可能なすべての Scrapy 設定のリストと, デフォルト値, 適用されるスコープが示されています.
使用可能な場合スコープは, 特定のコンポーネントに関連付けられていれば, 設定が使用されている場所を示します. その場合, そのコンポーネントのモジュール, 通常は拡張モジュール, ミドルウェアまたはパイプラインが表示されます. また, 設定を有効にするためにコンポーネントを有効にする必要があることも意味します.
AWS_ACCESS_KEY_ID¶
デフォルト: None
S3フィードストレージバックエンド など, Amazon Web services のアクセスを必要とするコードで使用されるAWSアクセスキー.
AWS_SECRET_ACCESS_KEY¶
デフォルト: None
S3フィードストレージバックエンド など, Amazon Web services へのアクセスを必要とするコードで使用されるAWS秘密鍵.
BOT_NAME¶
デフォルト: 'scrapybot'
このScrapyプロジェクトによって実装されたボットの名前(プロジェクト名とも呼ばれます). これは, デフォルトで User-Agent, ロギングに使用されます.
startproject
コマンドを使用してプロジェクトを作成すると, プロジェクト名が自動的に入力されます.
CONCURRENT_REQUESTS_PER_DOMAIN¶
デフォルト: 8
単一のドメインに対して実行される並行(つまり同時)リクエストの最大数.
AutoThrottle 拡張機能 と
AUTOTHROTTLE_TARGET_CONCURRENCY
オプションも参照してください.
CONCURRENT_REQUESTS_PER_IP¶
デフォルト: 0
単一の IP に対して実行される並行(つまり同時)要求の最大数.
0以外の場合, CONCURRENT_REQUESTS_PER_DOMAIN
設定は無視され,
代わりにこの設定が使用されます. つまり, ドメインごとではなく, IPごとに並行処理の制限が適用されます.
この設定は, DOWNLOAD_DELAY
及び
AutoThrottle 拡張機能: にも影響します. CONCURRENT_REQUESTS_PER_IP
がゼロ以外の場合, ドメインごとではなくIPごとにダウンロード遅延が強制されます.
DEFAULT_REQUEST_HEADERS¶
デフォルト:
{
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
Scrapy HTTP Request に使用されるデフォルトのヘッダー. これらは,
DefaultHeadersMiddleware
に設定されています.
DEPTH_LIMIT¶
デフォルト: 0
スコープ: scrapy.spidermiddlewares.depth.DepthMiddleware
どのサイトでもクロールできる最大の深さ. ゼロの場合, 制限は課されません.
DEPTH_PRIORITY¶
デフォルト: 0
スコープ: scrapy.spidermiddlewares.depth.DepthMiddleware
深さに基づいてリクエストの優先度を調整するために使用される整数:
- 0(デフォルト)の場合, 深度からの優先調整は行われません
- 正の値は優先度を下げます. つまり, 深度の高い要求が後で処理されます. これは, 幅優先のクロール(BFO)を行うときによく使用されます
- 負の値は優先度を増加させます. すなわち, より深い深度要求がより早く処理されます(DFO)
BFO または DFO のチューニングに関しては Scrapyは幅優先, 深さ優先どちらでクロールしますか? を参照してください.
注釈
この設定は, 他の優先度設定である REDIRECT_PRIORITY_ADJUST
及び RETRY_PRIORITY_ADJUST
と比較して, 優先度を調整します.
DEPTH_STATS_VERBOSE¶
デフォルト: False
スコープ: scrapy.spidermiddlewares.depth.DepthMiddleware
冗長な深さ統計を収集するかどうか. これを有効にすると, 各深さのリクエスト数が統計情報に収集されます.
DOWNLOADER_HTTPCLIENTFACTORY¶
デフォルト: 'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'
HTTP / 1.0接続( HTTP10DownloadHandler
の場合)に使用する,
Twisted の protocol.ClientFactory
クラスを定義します.
注釈
Twisted < 11.1 を使用しない限り, HTTP/1.0 は今日めったに使われないので, この設定を無視しても問題ありません.
HTTP/1.0 を使用し, http(s)
スキームに応じて DOWNLOAD_HANDLERS_BASE
をオーバーライドする,
すなわち 'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler'
.
DOWNLOADER_CLIENTCONTEXTFACTORY¶
デフォルト: 'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'
使用する ContextFactory へのクラスパスを表します.
ContextFactory は, SSL / TLS コンテキストの Twisted の用語で, 使用するTLS / SSLプロトコルのバージョン, 証明書の検証の有無, クライアント側の認証(およびその他のさまざまなもの)の有効化を定義します.
注釈
Scrapy のデフォルトコンテキストファクトリは, リモートサーバー証明書の検証を実行しません. これは, 通常のウェブスクレーピングでは問題ありません.
リモートサーバー証明書の検証が有効になっている必要がある場合は,
プラットフォームの証明書を使用してリモートエンドポイントを検証する
'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'
という別のコンテキストファクトリクラスを使用することもできます.
Twisted>=14.0. で使用することができます.
カスタム ContextFactory を使用する場合は,
init で method
パラメータを受け入れるようにしてください
(これは OpenSSL.SSL
メソッドの DOWNLOADER_CLIENT_TLS_METHOD
のマッピングです).
DOWNLOADER_CLIENT_TLS_METHOD¶
デフォルト: 'TLS'
この設定を使用して, デフォルトの HTTP/1.1 ダウンローダが使用する TLS/SSL 方式をカスタマイズします.
この設定は, これらの文字列値のいずれかでなければなりません:
'TLS'
: OpenSSLのTLS_method()
(a.k.aSSLv23_method()
), にマップされています. これにより, プラットフォームでサポートされている最高位から始まる プロトコルネゴシエーションが可能になります; デフォルト, 推奨'TLSv1.0'
: この値を指定すると, HTTPS接続はTLSバージョン1.0を使用します. Scrapy < 1.1 の動作が必要な場合にこれを設定します'TLSv1.1'
: TLS バージョン 1.1 を強制します'TLSv1.2'
: TLS バージョン 1.2 を強制します'SSLv3'
: SSL バージョン 3 を強制します (非推奨)
注釈
PyOpenSSL >= 0.13, Twisted >= 0.13 以上を使用することをお勧めします(出来れば Twisted> = 14.0).
DOWNLOADER_MIDDLEWARES¶
デフォルト: {}
あなたのプロジェクトで有効になっているダウンローダミドルウェアとその注文を含む辞書. 詳細については ダウンローダーミドルウェアの有効化 を参照してください.
DOWNLOADER_MIDDLEWARES_BASE¶
デフォルト:
{
'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100,
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300,
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350,
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 400,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 500,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 550,
'scrapy.downloadermiddlewares.ajaxcrawl.AjaxCrawlMiddleware': 560,
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware': 580,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 590,
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 600,
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750,
'scrapy.downloadermiddlewares.stats.DownloaderStats': 850,
'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900,
}
Scrapyでデフォルトで有効になっているダウンローダミドルウェアを含む辞書.
ローオーダーはエンジンに近く, ハイオーダーはダウンローダーに近くなっています.
プロジェクトでこの設定を変更しないでください. 代わりに
DOWNLOADER_MIDDLEWARES
を変更してください. 詳細については,
ダウンローダーミドルウェアの有効化 を参照してください.
DOWNLOAD_DELAY¶
デフォルト: 0
ダウンローダが同じWebサイトから連続したページをダウンロードするまで待機する時間(秒). これは, サーバに負荷がかかることを避けるために, クロール速度を抑えるために使用できます. 10進数がサポートされています. 例:
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
この設定は, RANDOMIZE_DOWNLOAD_DELAY
設定の影響を受けます(デフォルトで有効). 既定では,
Scrapyは要求間の固定時間を待機しませんが, 0.5 * DOWNLOAD_DELAY
から 1.5 * DOWNLOAD_DELAY
までのランダムな間隔を使用します.
CONCURRENT_REQUESTS_PER_IP
がゼロ以外の場合, 遅延はドメインごとではなくIPアドレスごとに適用されます.
download_delay
スパイダー属性を設定することで, スパイダーごとにこの設定を変更することもできます.
DOWNLOAD_HANDLERS¶
デフォルト: {}
プロジェクトで有効になっているリクエストダウンローダーハンドラを含む dict
.
形式のサンプルについては DOWNLOAD_HANDLERS_BASE
を参照してください.
DOWNLOAD_HANDLERS_BASE¶
デフォルト:
{
'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler',
'http': 'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
'https': 'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
's3': 'scrapy.core.downloader.handlers.s3.S3DownloadHandler',
'ftp': 'scrapy.core.downloader.handlers.ftp.FTPDownloadHandler',
}
デフォルトで Scrapy で有効になっているリクエストハンドラを含む dict
. プロジェクトでこの設定を変更しないでください. 代わりに
DOWNLOAD_HANDLERS
を変更してください.
これらのダウンロードハンドラのいずれかを無効にするには,
DOWNLOAD_HANDLERS
の URI スキームにNoneを割り当てます.
たとえば, 組み込みのFTPハンドラを無効にするには(置き換えずに), これを settings.py に記述子ます:
DOWNLOAD_HANDLERS = {
'ftp': None,
}
DOWNLOAD_TIMEOUT¶
デフォルト: 180
ダウンローダーがタイムアウトするまで待機する時間(秒単位).
注釈
このタイムアウトは, download_timeout
スパイダ属性と download_timeout
Request.meta キーを使用したリクエストごとに設定できます.
DOWNLOAD_MAXSIZE¶
デフォルト: 1073741824 (1024MB)
ダウンローダがダウンロードする最大応答サイズ(バイト単位).
無効にする場合は, 0に設定します.
注釈
このサイズは, download_maxsize
Request.metaキーを使用して,
download_maxsize
スパイダ属性とper-requestを使用してスパイダごとに設定できます.
この機能には Twisted >= 11.1 が必要です.
DOWNLOAD_WARNSIZE¶
デフォルト: 33554432 (32MB)
ダウンローダが警告を開始するレスポンスサイズ(バイト単位).
無効にする場合は, 0に設定します.
注釈
このサイズは, download_warnsize
Request.metaキーを使用して,
download_warnsize
スパイダ属性およびper-requestを使用してスパイダごとに設定できます.
これには, Twisted >= 11.1 が必要です.
DUPEFILTER_CLASS¶
デフォルト: 'scrapy.dupefilters.RFPDupeFilter'
重複リクエストを検出してフィルタリングするために使用されるクラス.
デフォルトのフィルタ (RFPDupeFilter
) は,
scrapy.utils.request.request_fingerprint
関数を使用してリクエストフィンガープリントに基づいてフィルタリングします.
重複をチェックする方法を変更するには, RFPDupeFilter
をサブクラス化し,
request_fingerprint
メソッドをオーバーライドすることができます.
このメソッドは Request
オブジェクトを受け入れ, そのフィンガープリント(文字列)を返す必要があります.
DUPEFILTER_DEBUG¶
デフォルト: False
デフォルトでは, RFPDupeFilter
は最初の重複要求のみを記録します.
DUPEFILTER_DEBUG
を True
に設定すると, すべての重複リクエストが記録されます.
EDITOR¶
デフォルト: 環境依存
edit
マンドでスパイダーを編集するために使用するエディター.
EDITOR
環境変数が設定されていると, デフォルトで使用されます.
それ以外の場合, デフォルトは vi
Unixシステムの場合)または IDLE エディター(Windowsの場合)になります.
EXTENSIONS_BASE¶
デフォルト:
{
'scrapy.extensions.corestats.CoreStats': 0,
'scrapy.extensions.telnet.TelnetConsole': 0,
'scrapy.extensions.memusage.MemoryUsage': 0,
'scrapy.extensions.memdebug.MemoryDebugger': 0,
'scrapy.extensions.closespider.CloseSpider': 0,
'scrapy.extensions.feedexport.FeedExporter': 0,
'scrapy.extensions.logstats.LogStats': 0,
'scrapy.extensions.spiderstate.SpiderState': 0,
'scrapy.extensions.throttle.AutoThrottle': 0,
}
Scrapy のデフォルトで利用可能な拡張機能とそのオーダーを含む dict
.
この設定には, すべての安定したビルトイン拡張機能が含まれています.
そのうちのいくつかは設定によって有効にする必要があることに注意してください.
詳細については, 拡張機能ユーザーガイド 及び 使用可能な拡張機能の一覧 を参照してください.
FEED_TEMPDIR¶
Feed Temp ディレクトリでは, FTP フィードストレージ と Amazon S3 にアップロードする前に, クローラの一時ファイルを保存するカスタムフォルダを設定できます.
ITEM_PIPELINES¶
デフォルト: {}
使用するアイテムパイプラインとその注文を含む dict
.
順序値は任意ですが, 0〜1000の範囲で定義するのが通例です.
下位の注文は高次のオーダーの前に処理されます.
例:
ITEM_PIPELINES = {
'mybot.pipelines.validate.ValidateMyItem': 300,
'mybot.pipelines.validate.StoreMyItem': 800,
}
ITEM_PIPELINES_BASE¶
デフォルト: {}
Scrapy でデフォルトで有効になっているパイプラインを含む dict
.
プロジェクトでこの設定を変更しないでください.
代わりに ITEM_PIPELINES
を変更してください
LOG_FORMAT¶
デフォルト: '%(asctime)s [%(name)s] %(levelname)s: %(message)s'
ログメッセージのフォーマット用の文字列. 使用可能なプレースホルダの一覧については, Python logging documentation を参照してください.
LOG_DATEFORMAT¶
デフォルト: '%Y-%m-%d %H:%M:%S'
日付/時刻の書式設定の文字列, LOG_FORMAT
の %(asctime)s
のプレースホルダの展開.
使用可能なディレクティブの一覧については, Python datetime documentation を参照してください.
LOG_LEVEL¶
デフォルト: 'DEBUG'
ログに記録する最小レベル. 使用可能なレベルは, CRITICAL, ERROR, WARNING, INFO, DEBUGです. 詳細は ロギング を参照してください.
LOG_STDOUT¶
デフォルト: False
True
の場合, プロセスのすべての標準出力(およびエラー)がログにリダイレクトされます.
たとえば, print 'hello'
を実行すると, Scrapyログに表示されます.
MEMDEBUG_NOTIFY¶
デフォルト: []
メモリデバッグが有効になっている場合, この設定が空でなければ, 指定されたアドレスにメモリレポートが送信されます. そうでない場合, レポートはログに書き込まれます.
例:
MEMDEBUG_NOTIFY = ['user@example.com']
MEMUSAGE_ENABLED¶
デフォルト: False
スコープ: scrapy.extensions.memusage
メモリ使用量の拡張を有効にして, メモリ制限を超えた場合に Scrapy プロセスをシャットダウンするかどうか. また, その場合は電子メールで通知されます.
メモリ使用量拡張機能 を参照してください.
MEMUSAGE_LIMIT_MB¶
デフォルト: 0
スコープ: scrapy.extensions.memusage
(MEMUSAGE_ENABLEDがTrueの場合)Scrapy をシャットダウンする前に許容される メモリの最大量(メガバイト単位). ゼロの場合, チェックは実行されません.
メモリ使用量拡張機能 を参照してください.
MEMUSAGE_CHECK_INTERVAL_SECONDS¶
バージョン 1.1 で追加.
デフォルト: 60.0
スコープ: scrapy.extensions.memusage
メモリ使用量拡張機能 は,
MEMUSAGE_LIMIT_MB
および MEMUSAGE_WARNING_MB
によって設定された制限と現在のメモリ使用量を, 一定の時間間隔でチェックします.
これは, これらの間隔の長さを秒単位で設定します.
メモリ使用量拡張機能 を参照してください.
MEMUSAGE_NOTIFY_MAIL¶
デフォルト: False
スコープ: scrapy.extensions.memusage
モリー制限に達したことを通知する電子メールのリスト.
例:
MEMUSAGE_NOTIFY_MAIL = ['user@example.com']
メモリ使用量拡張機能 を参照してください.
MEMUSAGE_REPORT¶
デフォルト: False
スコープ: scrapy.extensions.memusage
各スパイダーが閉じられた後にメモリ使用量レポートを送信するかどうか.
メモリ使用量拡張機能 を参照してください.
MEMUSAGE_WARNING_MB¶
デフォルト: 0
スコープ: scrapy.extensions.memusage
通知する警告電子メールを送信する前に許容されるメモリの最大量(メガバイト単位). ゼロの場合, 警告は生成されません.
NEWSPIDER_MODULE¶
デフォルト: ''
genspider
コマンドを使用して新しいスパイダーを作成する場所.
例:
NEWSPIDER_MODULE = 'mybot.spiders_dev'
RANDOMIZE_DOWNLOAD_DELAY¶
デフォルト: True
有効にすると, 同じWebサイトからリクエストを取得する間, Scrapyはランダムな時間
(0.5 * DOWNLOAD_DELAY
から 1.5 * DOWNLOAD_DELAY
の間まで)
待機します.
このランダム化は, リクエスト間の時間から統計的に有意な類似性を探し, リクエストを分析するサイトによってクローラが検出される(およびその後ブロックされる)可能性を低下させます.
ランダム化ポリシーは, wget --random-wait
オプションで使用されるものと同じです.
DOWNLOAD_DELAY
が 0(デフォルト)の場合, このオプションは無効です.
REACTOR_THREADPOOL_MAXSIZE¶
デフォルト: 10
Twisted Reactor スレッドプールサイズの最大限度. これは, さまざまな Scrapy コンポーネントで使用される汎用スレッドプールです. スレッド化された DNS リゾルバ, BlockingFeedStorage, S3 FilesStore などです. ブロッキング IO が不十分で問題が発生している場合は, この値を大きくしてください.
REDIRECT_MAX_TIMES¶
デフォルト: 20
要求をリダイレクトできる最大時間を定義します. この最大値の後, 要求の応答はそのまま返されます. 私達は, Firefoxのデフォルト値を同じタスクに使用しました.
REDIRECT_PRIORITY_ADJUST¶
デフォルト: +2
スコープ: scrapy.downloadermiddlewares.redirect.RedirectMiddleware
元のリクエストに対するリダイレクトリクエストの優先度を調整します.
- 正の優先度調整(デフォルト)はより高い優先度を意味します.
- 負の優先順位調整は低い優先順位を意味します.
RETRY_PRIORITY_ADJUST¶
デフォルト: -1
スコープ: scrapy.downloadermiddlewares.retry.RetryMiddleware
オリジナルのリクエストに対するリトライリクエストの優先度を調整する:
- 正の優先度調整はより高い優先度を意味します.
- 負の優先順位調整(デフォルト)は低い優先順位を意味します.
ROBOTSTXT_OBEY¶
デフォルト: False
スコープ: scrapy.downloadermiddlewares.robotstxt
有効にすると, Scrapy は robots.txt ポリシーを尊重します. 詳細については, RobotsTxtMiddleware を参照してください.
注釈
歴史的な理由からデフォルト値は False
ですが, このオプションは
scrapy startproject
コマンドで生成される settings.py ファイルではデフォルトで有効になっています.
SCHEDULER_DEBUG¶
デフォルト: False
True
に設定すると, 要求スケジューラに関するデバッグ情報が記録されます.
要求をディスクにシリアライズできない場合は, 現在ログに記録されます(1回のみ).
Stats カウンター (scheduler/unserializable
) は, これが発生する回数を追跡します.
ログのエントリ例:
1956-01-31 00:00:00+0800 [scrapy] ERROR: Unable to serialize request:
<GET http://example.com> - reason: cannot serialize <Request at 0x9a7c7ec>
(type Request)> - no more unserializable requests will be logged
(see 'scheduler/unserializable' stats counter)
SCHEDULER_DISK_QUEUE¶
デフォルト: 'scrapy.squeues.PickleLifoDiskQueue'
スケジューラーが使用するディスクキューのタイプ. その他の使用可能なタイプは,
scrapy.squeues.PickleFifoDiskQueue
, scrapy.squeues.MarshalFifoDiskQueue
,
scrapy.squeues.MarshalLifoDiskQueue
.
SCHEDULER_MEMORY_QUEUE¶
デフォルト: 'scrapy.squeues.LifoMemoryQueue'
スケジューラーが使用するインメモリー・キューのタイプ. その他の使用可能なタイプは,
scrapy.squeues.FifoMemoryQueue
です.
SPIDER_CONTRACTS¶
デフォルト:: {}
あなたのプロジェクトで有効にされたスパイダー契約を含む辞書. スパイダーのテストに使用されます. 詳細は スパイダーコントラクト を参照してください.
SPIDER_CONTRACTS_BASE¶
デフォルト:
{
'scrapy.contracts.default.UrlContract' : 1,
'scrapy.contracts.default.ReturnsContract': 2,
'scrapy.contracts.default.ScrapesContract': 3,
}
Scrapyでデフォルトで有効になっているコントラクトを含む辞書.
プロジェクトでこの設定を変更しないでください, SPIDER_CONTRACTS
を変更してください. 詳細は, スパイダーコントラクト を参照してください.
これらのコントラクトを無効にするには SPIDER_CONTRACTS
のクラスパスに None
を割り当ててください.
例えば, 組み込みの ScrapesContract
を無効にするには, settings.py
に, この様に記述します:
SPIDER_CONTRACTS = {
'scrapy.contracts.default.ScrapesContract': None,
}
SPIDER_LOADER_CLASS¶
デフォルト: 'scrapy.spiderloader.SpiderLoader'
スパイダーローダー API を実装する必要があるスパイダーのロードに使用されるクラス.
SPIDER_MIDDLEWARES_BASE¶
デフォルト:
{
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
'scrapy.spidermiddlewares.referer.RefererMiddleware': 700,
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware': 800,
'scrapy.spidermiddlewares.depth.DepthMiddleware': 900,
}
Scrapy でデフォルトで有効になっているスパイダーミドルウェアとそのオーダーを含む辞書. オーダーの値が低いものはエンジンに近く, 高いものははスパイダーに近くなっています. 詳細については, スパイダーミドルウェアの有効化 を参照してください.
SPIDER_MODULES¶
デフォルト: []
Scrapy がスパイダーを探すモジュールのリスト.
例:
SPIDER_MODULES = ['mybot.spiders_prod', 'mybot.spiders_dev']
STATS_CLASS¶
デフォルト: 'scrapy.statscollectors.MemoryStatsCollector'
統計コレクター API を実装する必要がある, 統計を収集するために使用するクラス.
STATS_DUMP¶
デフォルト: True
スパイダーが終了したときに Scrapy stats (Scrapy ログに) をダンプします.
詳細については, 統計コレクション を参照してください.
STATSMAILER_RCPTS¶
デフォルト: []
(empty list)
スパイダーがスクレイピングを終えた後, Scrapyの統計情報を送信します. 詳細は
StatsMailer
を参照してください.
TELNETCONSOLE_PORT¶
デフォルト: [6023, 6073]
Telnet コンソールに使用するポート範囲. None
または 0
を設定すると,
動的に割り当てられたポートが使用されます. 詳細については, Telnet コンソール を参照してください.
TEMPLATES_DIR¶
デフォルト: Scrapy モジュール内の templates
ディレクトリ
startproject
コマンドで新しいプロジェクトを作成するときにテンプレートを検索するディレクトリと,
genspider
コマンドで新しいスパイダーを検索するディレクトリ.
プロジェクト名は, プロジェクトサブディレクトリ内のカスタムファイルまたはディレクトリの名前と競合してはいけません.
URLLENGTH_LIMIT¶
デフォルト: 2083
スコープ: spidermiddlewares.urllength
クロールを許可するURLの最大長. この設定のデフォルト値の詳細については, http://www.boutell.com/newfaq/misc/urllength.html を参照してください.
USER_AGENT¶
デフォルト: "Scrapy/VERSION (+http://scrapy.org)"
オーバーライドされない限り, クロール時に使用されるデフォルトの User-Agent.
他の場所で文書化された設定:¶
次の設定は他の場所で文書化されています. それぞれのケースを確認して使用する方法を確認してください.
- AJAXCRAWL_ENABLED
- AUTOTHROTTLE_DEBUG
- AUTOTHROTTLE_ENABLED
- AUTOTHROTTLE_MAX_DELAY
- AUTOTHROTTLE_START_DELAY
- AUTOTHROTTLE_TARGET_CONCURRENCY
- CLOSESPIDER_ERRORCOUNT
- CLOSESPIDER_ITEMCOUNT
- CLOSESPIDER_PAGECOUNT
- CLOSESPIDER_TIMEOUT
- COMMANDS_MODULE
- COMPRESSION_ENABLED
- COOKIES_DEBUG
- COOKIES_ENABLED
- FEED_EXPORTERS
- FEED_EXPORTERS_BASE
- FEED_EXPORT_ENCODING
- FEED_EXPORT_FIELDS
- FEED_FORMAT
- FEED_STORAGES
- FEED_STORAGES_BASE
- FEED_STORE_EMPTY
- FEED_URI
- FILES_EXPIRES
- FILES_RESULT_FIELD
- FILES_STORE
- FILES_STORE_S3_ACL
- FILES_URLS_FIELD
- HTTPCACHE_ALWAYS_STORE
- HTTPCACHE_DBM_MODULE
- HTTPCACHE_DIR
- HTTPCACHE_ENABLED
- HTTPCACHE_EXPIRATION_SECS
- HTTPCACHE_GZIP
- HTTPCACHE_IGNORE_HTTP_CODES
- HTTPCACHE_IGNORE_MISSING
- HTTPCACHE_IGNORE_RESPONSE_CACHE_CONTROLS
- HTTPCACHE_IGNORE_SCHEMES
- HTTPCACHE_POLICY
- HTTPCACHE_STORAGE
- HTTPERROR_ALLOWED_CODES
- HTTPERROR_ALLOW_ALL
- HTTPPROXY_AUTH_ENCODING
- IMAGES_EXPIRES
- IMAGES_MIN_HEIGHT
- IMAGES_MIN_WIDTH
- IMAGES_RESULT_FIELD
- IMAGES_STORE
- IMAGES_STORE_S3_ACL
- IMAGES_THUMBS
- IMAGES_URLS_FIELD
- MAIL_FROM
- MAIL_HOST
- MAIL_PASS
- MAIL_PORT
- MAIL_SSL
- MAIL_TLS
- MAIL_USER
- METAREFRESH_ENABLED
- METAREFRESH_MAXDELAY
- REDIRECT_ENABLED
- REDIRECT_MAX_TIMES
- REFERER_ENABLED
- RETRY_ENABLED
- RETRY_HTTP_CODES
- RETRY_TIMES
- TELNETCONSOLE_HOST
- TELNETCONSOLE_PORT