peketaminの日記

その辺のプログラマーのチラ裏です。

メモ

Scrapy

PythonとかScrapyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - orangain flavor

Scrapyは便利なのですが、ダウンロードしたタイミングでスクレイピングするアーキテクチャになっているのは、あまりよろしいと思えません。ダウンロードした生のHTMLは一度データベースに保存しておき、オフラインでスクレイピングを行うべきです。

以上を踏まえ実運用では、単純にHTMLをMongoDBに保存するだけのItem Pipelineと、ジョブキューサーバーにジョブを追加するだけのItem Pipelineを作成し、スクレイピングは別プロセスで行っています。スクレイピングには lxml を使っていますが、正直Rubyの Nokogiri のほうが直感的に書けると思います。別プロセスであれば、あまりPythonにこだわる必要はありません。