如何监控网站的变化?

时间:2013-06-06 07:18:38

标签: c# web httpwebrequest monitoring httpwebresponse

所以我一直在研究这个问题一个月,但我在网上什么都没发现,所以我觉得每分钟检查网站源代码的变化是可能的,但似乎它的源代码每秒都在变化,所以我的编码有什么问题,还是有其他方法来监控网站的变化?

这是我的代码:

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!");

            }
        }
    }

2 个答案:

答案 0 :(得分:1)

首先,我建议在必须将页面的实际内容与存储的版本进行比较时:

  1. 将您存储的MD5哈希值与新哈希值的哈希值进行比较(不是每次都是内容)
  2. 请记住,页面中有不断变化的元素,您可能不会将其视为页面内容更改...
  3. 有些服务器会返回一个Last-Modified标题,您可以使用该标题进行比较。

答案 1 :(得分:0)

您已将计时器间隔设置为5000毫秒,仅使其为5秒。所以你的代码将每5秒运行一次。如果要每分钟运行一次计时器,则应将其设置为1000x60 = 60000 ms。我希望这有帮助。