我需要监控浏览器中打开的某个网页(https),不断刷新页面,并在网页上出现特定字符串时播放警报。我有没有办法做到这一点。
发布于 2011-01-06 08:47:11
我认为这可以通过下面的一些c#代码来完成。首先下载网页,然后检查下载的网页是否包含特定字符串。
有很多关于如何在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
}
使用此功能下载网页
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;
}
发布于 2011-01-06 09:03:16
您使用的是什么操作系统?如果你在Unix上,最好为它创建一个cronjob,这样你就不会有一个程序不断地占用内存。如果你要对网站进行几天甚至几周的监控,这一点尤其正确。
在这种情况下,最简单的方法是使用shell脚本,如下所示:
# 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
注意:我的解决方案和上面的海报都在字符串的html上进行了匹配。但这并不能保证该字符串如果在html中找到,就会出现在网页表示中。也许它存储在JavaScript数组中,并且只有在用户选择某个选项时才会打印到屏幕上……也许它被注释掉了..。有各种各样的可能性。在这些情况下,你将不得不做一些比我或上面的人建议的更聪明的匹配。
https://stackoverflow.com/questions/4610728
复制相似问题