2011-01-06 9 views
1

Ich habe die Anforderung, eine bestimmte Webseite (https) in meinem Browser zu öffnen, die Seite immer wieder zu aktualisieren und einen Alarm auszulösen, wenn eine bestimmte Zeichenfolge auf der Webseite erscheint. Kann ich das irgendwie erreichen?Eine Webseite für einen Text überwachen

+1

Möchten Sie ein Skript schreiben? Wenn ja, welche Sprache? – codersarepeople

+0

Ja Ich möchte ein Skript schreiben. Was ist der einfachste Weg? Ich möchte die Anmeldung nicht automatisieren, sondern nur das geöffnete Browserfenster aktualisieren und durchsuchen. – Dubey

+0

Wir brauchen mehr Informationen über die genaue Seite und welche Art von Authentifizierung, aber eine Kombination von Curl und Grep (oder Egrep) wird wahrscheinlich ausreichen. Sie wickeln das sogar in eine crontab/windows-Aufgabe ein oder geben einfach ein Konsolenfenster dazu. – kvista

Antwort

1

Ich denke, dass dies mit einigen der folgenden C# -Code getan werden kann. Laden Sie zuerst die Webseite herunter und überprüfen Sie dann, ob die heruntergeladene Webseite die bestimmte Zeichenfolge enthält.

Es gibt viele Anleitungen, wie Ton in C#

while(true) 
{ 
string webpage = DownloadWebpage("https://www.example.com"); 
if (webpage.Contains("particular string")) 
{ 

// play warning sound! 
break; // stop checking constantly 
} 
System.Threading.Thread.Sleep(60*1000); // 60 seconds between checking the webpage 
} 

Mit dieser Funktion spielen, um die Webseite

public static string DownloadWebpage(string url) 
{ 
     HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(url); 
     //WebRequestObject.UserAgent = ".NET Framework/3.5"; 
     webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7"; 
     //WebRequestObject.Referer = "http://www.aWebsite.com/"; 


     WebResponse response = webRequest.GetResponse(); 
     Stream responseStream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader(responseStream); 

     string content = reader.ReadToEnd(); 

     reader.Close(); 
     responseStream.Close(); 
     response.Close(); 
     return content; 
    } 
1

Welches Betriebssystem zum Download sind Sie? Wenn Sie unter Unix sind, ist es vielleicht besser, einen Cronjob dafür zu erstellen, so dass Sie kein Programm haben, das ständig Speicher beansprucht. Dies gilt insbesondere, wenn Sie die Website für Tage oder sogar Wochen überwachen.

In diesem Fall ist der einfachste Weg, es wäre ein Shell-Skript wie folgt zu tun:

# Make $DONE an environment variable 
url=... 
your_string=... 
file= 
export url, your_string, file 

if [$DONE]; then 
    exit(1) 
fi 

wget $url > $file 
if [grep $your_string $file]; then 
    $DONE = 1 
fi 

Caveat: Sowohl meine Lösung, und das Plakat des oben, gerade tut ein Spiel auf der HTML-Code für die Zeichenfolge. Aber das garantiert nicht, dass der String, wenn er im HTML gefunden wird, in der Webseitenpräsentation erscheint. Vielleicht ist es in einem JavaScript-Array gespeichert und wird nur auf den Bildschirm gedruckt, wenn der Benutzer eine bestimmte Option auswählt ... vielleicht wurde es auskommentiert ... es gibt alle möglichen Möglichkeiten. In diesen Fällen müssen Sie einen intelligenteren Abgleich durchführen als das, was ich oder die obige Person vorgeschlagen haben.

Verwandte Themen