私は現在、Web スクレイピングを実装する Java プロジェクトに取り組んでおり、これまでのところ奇妙な問題に直面しています。
これが私がすることです:
- Web サイトのページとの URL 接続を取得する
- HTML コードを解析してコンテンツを取得する (OpenData)
- データベースにコンテンツを追加する
- 次のページに移動し、ステップ 1 に戻ります
これは実際には非常に長く、何日も続く可能性があるため、スクリプトを実行する必要があります。問題は、理由もなく停止する場合があることです (エラー、メッセージ、ウィンドウが閉じません。文字通り停止するだけで、ボタンの 1 つを押して再起動する必要があります)。アプリケーションを停止した場所から再起動する短いコードを実装しました。データベースへの接続の問題だと思うので、どうすれば修正できるか知りたいです。
アプリケーションの開始時にこのクラスのインスタンスを作成する静的クラスを使用し、次にこのクラスの静的メソッドを使用して、たとえば次のようにクエリを実行します。
ConnexionBDD.con.prepareStatement(query);
public static Connection loadDriver() {
try {
Class.forName(Driver);
con = DriverManager.getConnection(ConnectionString, user, pwd);
} catch (ClassNotFoundException e) {
System.err.println("Classe not found : Class.forName(...)");
} catch (SQLException e) {
System.err.println(e.getMessage());
}
return con;
}
接続を(理論的には)永遠に持続させ、リンクの反復処理が終了したときに最終的に接続を閉じるために正しいことを行っているかどうかはわかりません。