0

私はこの種のことに慣れていませんが、特定のサイトをクロールし、数時間ごとに別のサイトを更新する(NBA統計に使用する)ボットを作成したいと思います。

ボットのコーディングに問題があるとは思わない。私は主にJava(Firefoxナビゲータープラグイン、Java HTTPリクエスト、そして単なる古いRobotクラス)を使って何かに手を出しました。

私がアドバイスを求めたいのは、コードをどこでどのように維持/実行すべきかということです。

どこかのサーバーに置く必要があると思います。自分で購入することも(最終的には必要)、どこかでホストすることもできます。このサービスを確実に(そしておそらく無料で)提供するオンラインの場所はありますか?

どのように、いくつかの一般的な設定は何ですか?私はJavaの方が快適ですが、どの言語を使用してもかまいません。非アクティブの非常に長い期間をどのように処理しますか?単にスレッドをスリープさせますか?それがひどい解決策であるならば、私の無知を許してください、しかし私は率直に言ってその問題の経験がありません。LAMPスタックのような完全なものが必要ですか、それともそれがなくても快適に通り抜けることができますか?私がこれを行うことができるいくつかの比較的痛みのない方法は何ですか?

4

1 に答える 1

1

ボットを使用してサイトをクロールするには、JsoupまたはSelenium 2のいずれかを使用することをお勧めします。クロールは自分のマシンで行いますが、その情報をサーバーまたはアプリケーションに投稿する必要がある場合は、それです。

一般に、この種のタスク(QUITE A WHILEではx回ごとに実行し、スリープする)は、「cron-jobs」または単に「crons」と呼ばれます。

クローラーが24時間年中無休で実行されている場合、デーモンと呼ばれます。

cronの場合、ある種のスケジューリング(実行する頻度)が必要です。Linuxを使用している場合は、crontabが解決策です。テキストファイルで、プログラムをいつ実行するか(n分ごと、特定の時間に毎日、特定の月の特定の日など)を指定すると、OSがプロセスを自動的に実行します。

このようにして、OSは毎回プログラムの新しいインスタンスを開始するため、プログラムはその役割を果たして終了します。

Linuxをお持ちでない場合は、Windowsの代替手段があると確信しています。それ以外の場合は、そのために使用できるJava用のQuartzと呼ばれるフレームワークがあります。

唯一の問題は、Quartzが時々クラスを呼び出すことを除いて、Javaプログラムが24時間年中無休で実行されることです。

于 2012-04-14T18:40:39.853 に答える