利用正则表达式分析腾讯网页提取天气信息

       过几天就冬至了,寒潮是隔几天就来一次,毛衣自从穿上之后就再也没脱下来过,就连看天气预报的次数就多了不少。
      今天心血来潮,看到腾讯天气网站的内容不错,就写了一个小程序,通过正则表达式分析网页内容,提取天气信息显示出来,然后定义一个计划任务定时弹出一个MessageBox显示天气信息,在上午上班时间显示今天天气,下午下班显示明天天气,感觉还不错。
      数据来源于网页:http://weather.qq.com/,主要分析两个页面,从http://weather.qq.com/inc/ss292.htm可以看到今天的天气,从http://weather.qq.com/inc/dc292.htm可以看到明天及未来的天气,主要利用System.Text.RegularExpressions中的Regex对象分析提取信息,例如html内容“<td height="23" align="center">小于3级</td>”,利用下面的表达式align=\"center\">([^<]*)</td>分析就可以获得字符串“小于3级”,大致代码如下
        Regex r = new Regex("align=\"center\">([^<]*)</td>", RegexOptions.IgnoreCase);
        Match m 
= r.Match(data);
        
while (m.Success)
        
{
            Group g1 
= m.Groups[1];
            System.Console.WriteLine(
"Group1=[" + g1.ToString().Trim() + "]");
            m 
= m.NextMatch();
        }
       利用一个循环语句就可以不断的分析html数据,提取出所有匹配的情况,基本上这就是天气信息的内容了,余下的就是组织一下代码就差不多了。
       最后,为了便于计划任务调用,用csc /target:winexe参数编译为winexe格式,然后加到计划任务中ok。
附:实现源代码https://files.cnblogs.com/midea0978/weather.rar

由于部分方法是.net 2.0中的,所以只能运行于.net 2.0环境,对于1.1则需要修改几个地方。

posted @ 2005-12-21 16:06  在路上...  阅读(6424)  评论(8编辑  收藏  举报