Gå til innhold

Anbefalte innlegg

Heisann. Jeg sliter med å finne en kode som sjekker om noe innhold på en nettside endrer seg.

Ta for eksempel:

 

www.hardware.no

 

Det jeg da ønsker er å lage en "IF" kommando som ser etter endringer i hele siden..

Her ser dere et slags eksempel.

 

På en måte slik at programmet leter etter endringer i siden, alt fra klokkeslett, eller når en ny artikkel kommer opp.. Alle endringer på siden liksom.

 

If (wb.document.body.innerhtml."ENDRERINNHOLD")

{

messagebox.show

}

Lenke til kommentar
Videoannonse
Annonse

Et enkelt forslag som trenger en del forbedringer hvis det skal bli noe, men det illustrerer ideen til svaret du fikk først.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.Net;
using System.Security.Cryptography;

namespace CheckChanges
{
   public partial class Form1 : Form
   {
       public WebClient WebKlient = new WebClient();
       public string url;
       public byte[] sisteSjekk = new byte[16];
       public byte[] sisteData;
       public bool sjekker;

       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           if (sjekker)
           {
               timer1.Stop();
               button1.Text = "Start";
           }

           if (!sjekker)
           {
               url = textBox1.Text;
               sisteData = WebKlient.DownloadData(url);
               sisteSjekk = MD5.Create().ComputeHash(sisteData);
               timer1.Interval = 10000;
               timer1.Tick += new EventHandler(Sjekk);
               timer1.Start();
               button1.Text = "Stopp";
               listBox1.Items.Add("Sjekker " + url + " hvert " + timer1.Interval / 1000 + " sekund");
               sjekker = true;
           }
       }



       private void Sjekk(object sender, EventArgs e)
       {
           byte[] nyData;
           byte[] nyHash = new byte[16];
           nyData = WebKlient.DownloadData(url);
           nyHash = MD5.Create().ComputeHash(nyData);
           listBox1.Items.Add("Sjekker " + url);
           if (SjekkHasher(nyHash))
           {
               listBox1.Items.Add(DateTime.Now.ToString() + "@" + url + " er forandret.");
           }
           else
           {
               listBox1.Items.Add("Same old.");
           }

           sisteSjekk = nyHash;
       }

       private bool SjekkHasher(byte[] ny)
       {
           int i;
           for (i = 0; i < 16; i++)
           {
               if (ny[i] != sisteSjekk[i]) 
                   return true;
           }
           return false;

       }
   }
}

Endret av Techster
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...