Scrapy-settings
スクレイピー-設定
説明
Scrapyコンポーネントの動作は、Scrapy設定を使用して変更できます。 複数のScrapyプロジェクトがある場合、設定は現在アクティブなScrapyプロジェクトを選択することもできます。
設定の指定
Webサイトをスクラップするときは、使用している設定をScrapyに通知する必要があります。 これには、環境変数 SCRAPY_SETTINGS_MODULE を使用し、その値はPythonパス構文である必要があります。
設定の入力
次の表は、設定を入力できるメカニズムの一部を示しています-
Sr.No | Mechanism & Description |
---|---|
1 |
Command line options ここでは、他のオプションをオーバーライドすることにより、渡される引数が最も優先されます。 -sは、1つ以上の設定をオーバーライドするために使用されます。
|
2 |
Settings per-spider クモは、custom_settings属性を使用して、プロジェクトの設定を上書きする独自の設定を持つことができます。
|
3 |
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_メソッドをオーバーライドする必要があります。 _from_crawler_メソッドに渡される属性_scrapy.crawler.Crawler.settings_を介して設定にアクセスできます。
次の例はこれを示しています。
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.No | Setting & Description |
---|---|
1 |
AWS_ACCESS_KEY_ID Amazon Webサービスへのアクセスに使用されます。 デフォルト値:なし |
2 |
AWS_SECRET_ACCESS_KEY Amazon Webサービスへのアクセスに使用されます。 デフォルト値:なし |
3 |
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 許可されるメモリの最大制限(メガバイト単位)を定義します。 デフォルト値: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 _true_に設定されている場合、scrapyは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 telnetコンソールのポートを定義します。 デフォルト値:[6023、6073] |
68 |
TEMPLATES_DIR これは、新しいプロジェクトの作成中に使用できるテンプレートを含むディレクトリです。 デフォルト値:スクレイピーモジュール内のテンプレートディレクトリ |
69 |
URLLENGTH_LIMIT クロールされたURLに許可されるURLの長さの最大制限を定義します。 デフォルト値:2083 |
70 |
USER_AGENT サイトのクロール中に使用されるユーザーエージェントを定義します。 デフォルト値:「Scrapy/VERSION(+ http://scrapy.org)」 |
その他のScrapy設定については、次のリンクにアクセスしてください:/scrapy/scrapy_other_settings [link]。