3

そうですね、私は 10 から 20 ほどのサイトで変更がないか監視するように依頼されました。
このメソッドを使用して、これらのサイトのヘッダー情報を取得し、最終更新時刻を確認しようとしています。

url = new URL( "http://www.wikipedia.org/" );
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
System.out.println( "Connection established" );
httpConnection.setRequestMethod( "HEAD" );
httpConnection.connect();
long lastModified = httpConnection.getLastModified();
if( lastModified != 0 ) {
    System.out.println( new Date( lastModified ) );
} else {
    System.out.println( "Last-Modified not returned" );
}
httpConnection.disconnect();`

しかし、この方法の問題点は、一部の (多くの) サイトが完全なヘッダー情報を入れていないことです。また、これがサーバーにヘッドリクエストを行う正しい方法なのか、それとも何か足りないのでしょうか???

サイトを監視する他の方法はありますか?
サイト全体を md5 値に変換してからサイトを監視していますが、この方法は機密性が高すぎて、わずかな変更でも通知されます。

4

1 に答える 1

1

サーバーが正確な last-modified ヘッダーを提供しない場合、サイトがいつ変更されたかを計算するのはあなた次第です。一定の間隔で Web ページを常に取得し、自分で変更を確認する必要があります。md5 の合計は実際、わずかな変更にも敏感です。おそらく、変更の影響を受けにくい代替手段を見つけることができます。Web サイトで入札の投稿を表示するために HTML テーブルが使用されている場合、テーブルの行を数えることができます。

右上の「新規入札のお知らせはこちら」から何かできることはないでしょうか?:)

注: 完全な Web 応答の md5 合計を取得している場合は、変更される可能性が非常に高いヘッダー データも md5 している可能性があります。おそらく、ヘッダー データなしで html の md5 合計を取得すると、ページがいつ変更されるかを正確に監視できます。単なる提案です - あなたが支払われている場合、私はあなたのためにあなたの仕事を解決したくありません:)

追加メモ: Web ページをリクエストするための独自のコードがあるようです。多くの既存のJava Web クローラー ライブラリのいずれかを使用することをお勧めします。コードの信頼性が向上し、操作がはるかに簡単になる可能性があります。

于 2013-02-28T10:11:58.080 に答える