毎日データを取得するために Web サイトにクロールする Web クローラーを実装する必要があります。これを行う最善の方法は何ですか?グルーヴィーなスクリプトを書いて、それを毎日繰り返すべきですか? スクリプトを使用すると、ドメイン クラスを使用できません。
なにか提案を?
毎日データを取得するために Web サイトにクロールする Web クローラーを実装する必要があります。これを行う最善の方法は何ですか?グルーヴィーなスクリプトを書いて、それを毎日繰り返すべきですか? スクリプトを使用すると、ドメイン クラスを使用できません。
なにか提案を?
XmlSlurper を使用してサイトからデータを読み取り、それを Grails のサービスで作成し、Quartz プラグインを使用してスケジュールすることをお勧めします。そうすれば、Grails のドメイン モデルにアクセスでき、スラーパーのクールさを利用して HTML を取得できます。Nekohtml http://nekohtml.sourceforge.netのようなパーサーも必要になる場合があります。
サービスを作成し、Cron ジョブを使用して Quartz 経由でスケジュールします。
サービス自体は、クロールにセレンを使用する必要があります。クロールする必要があるサイトによっては、JavaScript をサポートするために必要なブラウザーの精度を確認する必要がある場合があります。Selenium の Htmlunit ではうまくいかないかもしれません。
したがって、Grails マシンに Firefox または Chrome をインストールできることを確認する必要があります。これをさらに進めて、ブラウザーのインストールをサーバーから分離するには、別のマシンを Selenium グリッド ノードとして使用し、サーバーをすべてのノードが接続するグリッド ハブとして使用できます。Grails サービスは、FirefoxDriver または ChromeDriver をクロールする必要がなくなりましたが、代わりに Selenium ノードと通信する RemoteDriver が必要です。
おそらく、クローラーと Grails アプリケーションのフィードバックを切り離すために、メッセージング システムを使用することをお勧めします。APMQ を Apache Camel と組み合わせると、非常に効果的です。Camel を使用している場合は、Camel が Quartz でどのように役立つかを確認してください