日期:2014-05-18  浏览次数:20434 次

高手帮忙用正则提取网页代码的一些信息,多谢……………………顶有分!!
前两天去面试,聊了一会
公司让我改一个网站来考察我的能力,昨天研究了2个小时,思路不是很清晰,所以请高手帮帮忙。

问题描述:我要改的这个网站是在某机关的内部运行的,放在一个服务器上,服务器能上网,其他的客户端都不能上网,只能浏览架设在这个服务器上的这个网站。而这个网站要有天气预报的功能,现在他们是调用的新浪的天气预报,让我改成调用中国气象局的,因为中国气象局不提供相关的服务,因此只能用正则表达式进行抓取。
就是下面这个网页:http://www.cma.gov.cn/tqyb/weatherdetail/54517.html
我现在已经能读取到这个页面的html源码了,关键是如何用这则表达式提取需要的信息。所以请高手帮帮忙,小弟在此谢过!

提取这段中的主要信息“ <div   id=天津     style= "position:absolute;   left:374px;   top:200px;   width:248px;   height:202px;   background-color:#3366CC;   border:#fff   1px;z-index:1;   visibility:   hidden; ">
<div   align= "left ">
<div   id= "map-layer-city "   > 天津&nbsp;&nbsp;&nbsp;6月12日 </div>
<div   id= "map-layer-line "     > </div>
<div   id= "map-layer-content "   >
<div   id= "map-layer-pic "> <img   src= "/tqyb/img/weather/a60x60gif/a2.gif "> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img   src= "/tqyb/img/weather/a60x60gif/a1.gif "> </div>
<div   id= "map-layer-weaher "> 阴转多云 </div>
<div   id= "map-layer-temp "> 32   ~   24   ℃ </div>
<div   id= "map-layer-wind "> 东南风3-4级转 <=3级 </div>
<div   id= "map-layer-uv "> 紫外线:弱 </div>
<div   id= "map-layer-ac "> 空气质量:中 </div>
</div>
</div>
</div> ”

需要提取:时间=6月12日,温度=32   ~   24   ℃,风向东南风3-4级转 <=3级,天气=阴转多云。

------------我在网上找的代码,有问题,请高手指点---------
protected   void   Page_Load(object   sender,   EventArgs   e)
        {

                string   url   =   "http://www.cma.gov.cn/tqyb/weatherdetail/54517.html ";         //获取输入的网页地址
                WebRequest   wreq   =   WebRequest.Create(url);
                HttpWebResponse   wresp   =   (HttpWebResponse)wreq.GetResponse();
                string   HTML   =   " ";
                Stream   s   =   wresp.GetResponseStream();
                StreamReader   objReader   =   new   StreamReader(s,   System.Text.Encoding.GetEncoding( "GB2312 "));    
                string   sLine   =   " ";
                int   i   =   0;
                while   (sLine   !=   null)
                {
                        i++;
                        sLine   =   objReader.ReadLine();
                        if   (sLine   !=   null)
                            &