コアAPI¶
バージョン 0.15 で追加.
この節は、ScrapyコアAPIについて説明します。これは、拡張機能とミドルウェアの開発者を対象としています。
クローラーAPI¶
Scrapy APIの主要なエントリポイントは、 from_crawler クラス・メソッドを通じて拡張機能に渡される Crawler オブジェクトです。 このオブジェクトは、すべてのScrapyコア・コンポーネントへのアクセスを提供し、拡張機能がそれらにアクセスし、その機能をScrapyにフックする唯一の方法です。
拡張機能マネージャーは、インストールされた拡張機能を読み込んで追跡する責任があり、利用可能な全ての拡張機能の辞書と、 ダウンローダー・ミドルウェアの構成(configure) 方法と類似した順序を含む EXTENSIONS 設定で構成(configure)されます。
-
class
scrapy.crawler.Crawler(spidercls, settings)¶ Crawlerオブジェクトは、
scrapy.spiders.Spiderのサブクラスとscrapy.settings.Settingsオブジェクトでインスタンス化する必要があります。-
settings¶ このクローラーの設定マネージャ
これは、拡張機能とミドルウェアがこのクローラーのScrapy設定にアクセスするために使用します。
Scrapy設定の概要については、設定 を参照してください。
APIについては、
Settingsクラスを参照してください。
-
signals¶ このクローラーのシグナル・マネージャ
これは、拡張機能およびミドルウェアがScrapy機能にフックするために使用されます。
シグナルの概要については、 シグナル を参照してください。
APIについては、
SignalManagerクラスを参照してください。
-
stats¶ このクローラーの統計収集器
これは拡張機能とミドルウェアから使用され、その動作の統計を記録したり、他の拡張機能によって収集された統計にアクセスしたりします。
統計収集器の概要は 統計をとる を参照下さい。
APIについては
StatsCollectorクラス参照。
-
extensions¶ 有効な拡張機能を追跡(track)する拡張機能マネージャ
ほとんどの拡張機能は、この属性にアクセスする必要はありません。
拡張機能の紹介と、Scrapyで利用可能な拡張機能のリストについては、 拡張機能 を参照してください。
-
engine¶ スケジューラ、ダウンローダー、スパイダーの間のコア・クロール・ロジックを調整する実行エンジン。
一部の拡張機能では、Scrapyエンジンにアクセスして、ダウンローダーとスケジューラの動作を検査または変更することができますが、これは高度な使用方法であり、このAPIはまだ安定していません。
-
crawl(*args, **kwargs)¶ 指定された
args引数とkwargs引数を使用してスパイダー・クラスをインスタンス化することでクローラーを起動し、実行エンジンを起動します。クロールが終了したときに起動される遅延オブジェクトを返します。
-
APIの設定¶
-
scrapy.settings.SETTINGS_PRIORITIES¶ Scrapyで使用されるデフォルト設定の優先度のキー名と優先度を設定する辞書。
各項目は設定エントリ・ポイントを定義し、識別のためのコード名と整数の優先度を与えます。
Settingsクラスで値を設定および取得する場合、優先順位が高いほど順番値が小さくなります。SETTINGS_PRIORITIES = { 'default': 0, 'command': 10, 'project': 20, 'spider': 30, 'cmdline': 40, }
各設定ソースの詳細な説明については、 設定 を参照してください。
SpiderLoader API¶
-
class
scrapy.spiderloader.SpiderLoader¶ このクラスは、プロジェクト全体で定義されたスパイダー・クラスの取得と処理を担当します。
SPIDER_LOADER_CLASSプロジェクト設定でパスを指定することにより、カスタム・スパイダー・ローダーを使用できます。エラーのない実行を保証するには、scrapy.interfaces.ISpiderLoaderインターフェースを完全に実装する必要があります。-
from_settings(settings)¶ このクラスメソッドは、クラスのインスタンスを作成するためにScrapyによって使用されます。現在のプロジェクト設定で呼び出され、
SPIDER_MODULES設定のモジュールで見つかったスパイダーを再帰的にロードします。- パラメータ
settings (
Settingsinstance) -- プロジェクト設定
-
load(spider_name)¶ 指定された名前のSpiderクラスを取得します。
spider_nameという名前のスパイダークラスの、以前にロードされたスパイダーを調べ、見つからない場合はKeyErrorを発生させます。- パラメータ
spider_name (str) -- スパイダー・クラス名
-
list()¶ プロジェクトで利用可能なスパイダーの名前を取得します。
-
シグナルAPI¶
統計収集器API¶
scrapy.statscollectors モジュールの下にいくつかの統計収集器があり、それらはすべて StatsCollector クラス(すべての継承元)で定義された統計収集器APIを実装します。
-
class
scrapy.statscollectors.StatsCollector¶ -
get_value(key, default=None)¶ 指定された統計キーの値を返します。値が存在しない場合はデフォルトを返します。
-
get_stats()¶ 現在実行中のスパイダーからすべての統計を辞書として取得します。
-
set_value(key, value)¶ 与えられた統計キーに指定の値を設定します。
-
set_stats(stats)¶ stats引数で渡された辞書で現在の統計を上書きします。
-
inc_value(key, count=1, start=0)¶ (設定されていない場合は開始値を想定して、)指定された統計キーの値を指定されたカウントでインクリメントします。
-
max_value(key, value)¶ 同じキーの現在の値がvalueより小さい場合にのみ、指定されたキーに指定された値を設定します。指定されたキーに現在の値がない場合、値は常に設定されます。
-
min_value(key, value)¶ 同じキーの現在の値がvalueより大きい場合にのみ、指定されたキーに指定された値を設定します。指定されたキーに現在の値がない場合、値は常に設定されます。
-
clear_stats()¶ 全ての統計をクリアする
次のメソッドは、統計収集APIの一部ではありませんが、代わりにカスタム統計収集器を実装するときに使用されます:
-
open_spider(spider)¶ 統計収集のために、指定されたスパイダーを開きます。
-
close_spider(spider)¶ 指定されたスパイダーを閉じます。これが呼び出された後、これ以上特定の統計にアクセスしたり収集したりすることはできません。
-