5

だから私はこれに1か月取り組んできましたが、ネット上で何も見つけられなかったので、ウェブサイトのソースコードの変更を毎分確認することは可能かもしれないと思いましたが、ソースコードは毎秒変更されているようです.私のコーディングの問題、またはウェブサイトの変更を監視する他の方法はありますか?

ここに私のコードがあります:

private void Startbtn_Click(object sender, EventArgs e)
   {

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com");                            
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader source = new StreamReader(response.GetResponseStream());
richTextBox1.Text = source.ReadToEnd();
timer1.Start();
timer1.Interval = 60000;

     }

private void timer1_Tick(object sender, EventArgs e)
    {

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader source2 = new StreamReader(response.GetResponseStream());
        RichTextBox checker = new RichTextBox();
        checker.Text = source2.ReadToEnd();
        if (richTextBox1.Text == "")
        {
            richTextBox1.Text = checker.Text;

        }
        else
        {


            if (richTextBox1.Text != checker.Text)
            {
                MessageBox.Show("somthing changed");
                richTextBox1.Text = checker.Text;
            }
            else
            {
                MessageBox.Show("No changes yet!");

            }
        }
    }
4

2 に答える 2

1

まず、ページの実際のコンテンツを保存されたバージョンと比較する必要がある場合は、次のことをお勧めします。

  1. 保存した MD5 ハッシュを新しいハッシュと比較します (毎回の内容ではありません)。
  2. ページのコンテンツの変更とは見なされない変更要素がページにあることに注意してください...

一部のサーバーはLast-Modified、私が推測する比較を行うために使用できるヘッダーを返します。

于 2013-06-06T07:30:12.987 に答える
0

タイマー間隔を 5000 ミリ秒に設定したため、5 秒しかありません。したがって、コードは 5 秒ごとに実行されます。タイマーを毎分実行したい場合は、1000x60=60000 ミリ秒に設定する必要があります。これが役立つことを願っています。

于 2013-06-06T07:27:26.427 に答える