初めての Web クローラーを作成する準備をしていますが、Anemoneが最も理にかなっているようです。MongoDB ストレージの組み込みサポートがあり、Rails アプリケーションで Mongoid 経由で MongoDB を既に使用しています。私の目標は、クロールされた結果を保存し、後で Rails 経由でアクセスすることです。いくつかの懸念があります。
1)このページの最後に、「注:すべてのストレージ エンジンは、新しいクロールを開始する前に、既存の Anemone データを消去します。」と記載されています。デフォルトのメモリ ストレージを使用していた場合、これはクロールの最後に発生すると予想されますが、次にタスクを実行するときに重複するページがクロールされないように、レコードを無期限に MongoDB に保存するべきではありませんか? それらが「新しいクロールを開始する前に」消去された場合、次のクロールの前に Rails ロジックを実行する必要がありますか? もしそうなら、前回のクロールからの重複レコードをチェックしなければならなくなります。
2) Rails モデルのコンテキスト外で MongoDB を使用することについて真剣に考えたのはこれが初めてです。レコードはPage
クラスを使用して作成されているように見えますが、後で通常 Mongoid を使用するようにクエリを実行できますか? ファンシーメソッドを提供するORMがあれば、それは単に「モデル」と見なされると思いますか?