scrapy_redisの使用

Scrapy-Redisの設定

Scrapy-Redisの設定は非常に簡単です、唯一のsettings.py設定ファイルを変更する必要があります。

1.コア構成

まず、最も重要なのは、以下を追加し、Scrapy-Redisのスケジューラクラスと重量クラスに提供されるクラスを交換する必要がsettings.pyの内側に配置することが可能です

SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

2. Redisの接続構成

:直接settings.py REDIS_URL変数をすることができるように構成されている、第一

REDIS_URL = 'redis://:[email protected]:6379'

第2

REDIS_HOST = '120.27.34.25'
REDIS_PORT = 6379
REDIS_PASSWORD = 'foobared'

注:REDIS_URLを設定した場合、Scrapy-RedisのはREDIS_URL接続の使用を優先させて頂きます、上記の3つの構成をカバーします。あなたが項目別に個別に設定したい場合は、REDIS_URLを設定しないでください。

3.設定ディスパッチキュー

この設定はオプションであり、優先度つきキューのデフォルトを使用します。あなたが設定を変更したい場合は、次のようにSCHEDULER_QUEUE_CLASS変数を設定できます。

SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.PriorityQueue'
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.FifoQueue'
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.LifoQueue'

4. 配置持久化

この構成では、デフォルトはFalseで、オプションです。Scrapy-Redisのは、完成クロール指紋採取のデフォルトとデエンファシスによって、空のキューをクロール。

あなたは自動的に空のキューは、指紋採取とデエンファシスをクロールしたくない場合は、次のように増加させることができます。

SCHEDULER_PERSIST = True

SCHEDULER_PERSISTがTrueに設定され、再クロールした後、指紋収集キューは自動的にクロールの完了後にクリアされていない設定されていない場合、デフォルトはFalseで、それが自動的に空になります。

キューと重複排除指紋コレクションをクロール爬虫類の動作を中断することを余儀なく場合は自動的にクリアされていない、ということは注目に値します。

このプロジェクトで任意の構成がなければ、我々は、デフォルトの設定を使用します。

5.設定重量クロール

この構成では、デフォルトはFalseで、オプションです。あなたが永続的または強制的に中断された爬虫類を設定した場合、クロールキューと指紋採取は、それがクロール最後の爬虫類後に再起動します、空ではありません。あなたは、クロールを再したい場合は、我々は再クロールできる設定オプションを:

SCHEDULER_FLUSH_ON_START = True

この後SCHEDULER_FLUSH_ON_STARTは、Trueにクローラーがクロールキューを開始し、指紋採取をクリアするたびに設定してください。そうするためにクロール分散、我々は一度だけ空になっていることを確認しなければならない、またはあなたは爬虫類が一度空にされ、各タスクを起動したとき、彼らは確かに、分散クロールに影響を与えるだろう、キュー空のクロールの前に置かれます。

シングルをより便利にクロールするとき、この構成では、これは一般的な構成をクロールし、分散されていない、ということに注意してください。

このプロジェクトで任意の構成がなければ、我々は、デフォルトの設定を使用します。

6.パイプラインの構成

この設定はオプションで、デフォルトはパイプラインを開始しません。Scrapy-RedisのRedisの項目パイプラインへのストアを実装し、パイプラインが有効化され、その後、それはRedisのデータベースに格納されている爬虫類アイテムを生成します。大量のデータの場合には、我々は一般的にそうしていません。Redisのは、メモリに基づいているため、以下のように、我々はあまりにも無駄だろうストレージのためにそれを使用して、そのプロパティの高速な処理速度を利用し、構成は次のとおりです。

ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 300
}

このプロジェクトは、パイプラインを起動しないの設定は必要ありません。

これまでのところ、Scrapy-Redisの設定は完了です。我々はいくつかのオプションを設定する必要はありませんが、これらの構成は、特定の状況に応じて、他のScrapyのプロジェクトで使用することができます。

この要約は、公開番号から選択される:コーダ、完全な記事のリンクを攻撃します。https://mp.weixin.qq.com/s/JPkwHioLOC_27xfQCeWYhg

おすすめ

転載: www.cnblogs.com/c-x-a/p/10943026.html
おすすめ