Scrapy-settings

提供:Dev Guides
移動先:案内検索

スクレイピー-設定

説明

Scrapyコンポーネントの動作は、Scrapy設定を使用して変更できます。 複数のScrapyプロジェクトがある場合、設定は現在アクティブなScrapyプロジェクトを選択することもできます。

設定の指定

Webサイトをスクラップするときは、使用している設定をScrapyに通知する必要があります。 これには、環境変数 SCRAPY_SETTINGS_MODULE を使用し、その値はPythonパス構文である必要があります。

設定の入力

次の表は、設定を入力できるメカニズムの一部を示しています-

Sr.No Mechanism & Description
1

Command line options

ここでは、他のオプションをオーバーライドすることにより、渡される引数が最も優先されます。 -sは、1つ以上の設定をオーバーライドするために使用されます。

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

クモは、custom_settings属性を使用して、プロジェクトの設定を上書きする独自の設定を持つことができます。

class DemoSpider(scrapy.Spider):
   name = 'demo'
   custom_settings = {
      'SOME_SETTING': 'some value',
   }
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要求に使用されるデフォルトのヘッダーです。

デフォルト値-

{
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
    */*;q=0.8', 'Accept-Language': 'en',
}
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

これは、デフォルトで有効になっているダウンローダーミドルウェアを保持する辞書です。

デフォルト値-

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
20

DOWNLOADER_STATS

この設定は、ダウンローダーの統計を有効にするために使用されます。

デフォルト値:True

21

DOWNLOAD_DELAY

サイトからページをダウンロードするまでのダウンローダーの合計時間を定義します。

デフォルト値:0

22

DOWNLOAD_HANDLERS

これは、ダウンロードハンドラーを備えた辞書です。

デフォルト値:\ {}

23

DOWNLOAD_HANDLERS_BASE

これは、デフォルトで有効になっているダウンロードハンドラーを備えた辞書です。

デフォルト値-

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
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コントラクトを保持する辞書です。

デフォルト値-

{
   'scrapy.contracts.default.UrlContract' : 1,
   'scrapy.contracts.default.ReturnsContract': 2,
}
59

SPIDER_LOADER_CLASS

スパイダーをロードする_SpiderLoader API_を実装するクラスを定義します。

デフォルト値: 'scrapy.spiderloader.SpiderLoader'

60

SPIDER_MIDDLEWARES

スパイダーミドルウェアを保持する辞書です。

デフォルト値:\ {}

61

SPIDER_MIDDLEWARES_BASE

これは、Scrapyでデフォルトで有効になっているスパイダーミドルウェアを保持する辞書です。

デフォルト値-

{
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
}
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]。