P1rkah Designz Skrevet 8. mai 2009 Del Skrevet 8. mai 2009 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
GeirGrusom Skrevet 9. mai 2009 Del Skrevet 9. mai 2009 Du må enten sjekke innholdet tegn for tegn, eller få tak i siste endringen på en eller annen måte. Hvis du ikke har kontroll på serveren må du nesten sjekke om innholdet har endret seg siden sist. Enkleste er å danne en hash av innholdet og sjekke det mot en tidligere hash. Lenke til kommentar
Techster Skrevet 9. mai 2009 Del Skrevet 9. mai 2009 (endret) 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 15. mai 2009 av Techster Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå