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ページ/分クロールできるようになる。