监控网页上的文字

时间:2011-01-06 00:35:35

标签: automation

我需要监控在浏览器中打开的某个网页(https),继续刷新页面并在网页上显示特定字符​​串时播放警报。有什么方法可以达到这个目的。

2 个答案:

答案 0 :(得分:1)

我认为可以使用以下一些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;
  }

答案 1 :(得分:1)

你在使用什么操作系统?如果你在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数组中,只有当用户选择某个选项时才会打印到屏幕上...也许它被注释掉了......有各种各样的可能性。在这些情况下,你必须做一些比我或上面提到的人更聪明的匹配。