LoginSignup
30
25

More than 5 years have passed since last update.

大量のドメインに対してクロールするならScrapy-Redisがオススメ

Last updated at Posted at 2016-10-13

Scrapy-Redis

pip install scrapy_redis

して基本settings.pyを置き換えるだけ

導入するメリット

  • scrapyのスケジューラ、start_urlsのキュー、パイプラインにredisを使える(別々の拡張設定)
    • 外部連携や多重化が容易
  • スケジューラのキューが永続化されるので、途中でクローラーを止めても再開が可能
  • 同じSpiderをマルチプロセスやマルチサーバで複数起動して、同時に並列でクローリングできるようになる
  • pipelineで出力をredisに設定することで、後続の処理を別のワーカプロセスで処理できる
    • DBにバルクで書き込む
    • トークナイズする
    • 機械学習のストリームに流す
  • spiderのstart_urlsもredisにできるので、外部サービスから開始URLのキューにプッシュできる。

Scrapyはチューニング次第で1コアで1000ページ/分程度いけるから(CPU 100%食いきれる)、
Scrapy-Redisを使うことで、コア数 * 1000ページ/分クロールできるようになる。

30
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
25