本地天气通预报

本地未来5天天气预报
预报员:罗栩羽8时32分32秒
天气趋势分析:我市6日白天以多云间阴天为主,夜间有零星小雨,天气温暖,早晚仍有轻度雾霾;6日夜新一股冷空气开始影响我市,我市气温逐渐下降,北风加大并伴有分散小雨,雾霾消散,8日转多云;9日晴间多云,早晚较冷;预计该股冷空气过程降温幅度为5-6度。建议:请注意根据天气变化增减衣服,慎防感冒!
未来24小时天气预报:01月06日白天:多云间阴天,有轻微雾霾,01月06日夜间:多云间阴天,有轻微雾霾和零星小雨,气温:16到25度,相对湿度:50%到90%,轻微偏东风。
1月6日星期二
多云间阴天,有轻微雾霾和零星小雨
轻微偏东风
1月7日星期三
阴天,有分散小雨
和缓偏北风
1月8日星期四
和缓偏北风
1月9日星期五
和缓偏北风
1月10日星期六
轻微偏北风
全国天气情况
出行天气查询
&&&&定制:如果您每天需要某个城市的天气预报信息,可编写短消息内容为“数字11后再加上该城市的长途区号”确认后,发送到“”。&&&&
点播:如果你即时想获东莞最新天气预报信息,可编写短消息内容为“数字22后再加上该城市的长途区号”确认后,发送到“”。
&&&&拨打电话“12121”可获得本地最新天气信息。历史上的今天
相关地区天气:
展开更多收起
上犹天气预报
上犹生活指数
上犹今天天气
上犹当前温度
17&相对湿度:73%
每日播报天气
穿衣指数:较舒适建议着薄外套、开衫牛仔衫裤等服装。年老体弱者应适当添加衣物,宜着夹克衫、薄毛衣等。
晨练指数:不宜风力较大,较不宜晨练,建议年老体弱人群适当减少晨练时间,若坚持室外锻炼,请选择避风的地点。
洗车指数:不宜不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。
旅游指数:适宜有阵雨,温度适宜,在细雨中游玩别有一番情调,可不要错过机会呦!但记得出门要携带雨具。
紫外线指数:最弱可以不采取措施
晾晒指数:不宜
江西上犹天气预报一周
    
上犹今日天气星期二18℃~7℃小雨微风
上犹明日天气星期三11℃~5℃阴转多云微风
上犹后天天气星期四14℃~5℃多云微风
上犹09日天气星期五15℃~9℃多云微风
上犹10日天气星期六15℃~8℃阴转小雨微风
上犹11日天气星期日12℃~7℃小雨微风
紫外线指数:最弱
可以不采取措施
穿衣指数:较舒适
建议着薄外套、开衫牛仔衫裤等服装。年老体弱者应适当添加衣物,宜着夹克衫、薄毛衣等。
旅游指数:适宜
有阵雨,温度适宜,在细雨中游玩别有一番情调,可不要错过机会呦!但记得出门要携带雨具。
舒适度指数:舒适
白天不太热也不太冷,风力不大,相信您在这样的天气条件下,应会感到比较清爽和舒适。
晨练指数:不宜
风力较大,较不宜晨练,建议年老体弱人群适当减少晨练时间,若坚持室外锻炼,请选择避风的地点。
洗车指数:不宜
不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。
晾晒指数:不宜
息斯敏过敏气象指数:极不易发
上犹2014年01月历史天气
多云:18天
气温走势图:
<li month="14年12月
<li month="14年01月
<li month="14年02月
今日推荐显示
今天周三周四周五周六周日
上犹未来一周天气气温走势图
上犹地区相关天气预报
上犹城市介绍
上犹县位于江西省赣州市西部,山青水秀,物产丰饶,是赣粤湘三省交界处保存完好、融山水为一体的生态功能区;人杰地灵,民风淳朴,是典型的老区、山区、库区县,是国家扶贫开发工作重点县;享有得天独厚的环境、资源优势,素有“水电之乡、旅游之乡、茶叶之乡”的美誉。全县通行客家话(于桂片),拥有浓郁的客家文化和风情。
1543.87平方千米&
30万(2008年)
客家话(于桂片)&
气候条件:
亚热带季风性湿润气候
车牌代码:
区号/邮编:
0797&/&341200
上犹周边地区今日天气预报
热门地区天气
今日上犹天气概述
上犹今天天气:小雨,微风,全天气温18℃~7℃,当前温度17℃;温馨提示: 。上犹明天天气:阴转多云,微风,全天气温11℃~5℃。
上犹天气分享给好友:点此复制
上犹生活网站
全国各省天气国际天气预报
热门城市天气预报
天气预报查询
--请选择--
A 非洲A 安徽A 澳门A 亚洲B 北京C 重庆E 欧洲F 福建G 甘肃G 广东G 广西G 贵州H 海南H 河北H 黑龙江H 河南H 湖北H 湖南J 江苏J 江西J 吉林L 辽宁N 内蒙古N 宁夏N 北美洲O 大洋洲Q 青海S 陕西S 山东S 上海S 山西S 四川S 南美洲T 台湾T 天津X 香港X 新疆X 西藏Y 云南Z 浙江
--请选择--
--请选择--
网友正在查
常用查询工具
实用查询工具
日常生活:
站长工具:
学习应用:
民俗娱乐:
电脑网络:
财经商务:
交通旅游:
医疗健康:找学校,搜学校,学校口碑早知道!
您可以免费发布教育培训信息,找学校,找课程,找老师,学校建站,发布新闻动态,招生培训等。
推荐学校:
LOADING...
您当前的位置: >>
>> ASP.NET教程 >> 根据IP获取当地天气预报的实现35fbe038b05e9e29
根据IP获取当地天气预报的实现
更新日期: 来源:网友投搞 作者:佚名 分享2492次
核心提示:新闻资讯频道所转载文章、数据等内容纯属作者个人观点,仅供学习参考使用。本文《根据IP获取当地天气预报的实现》来源于网络并非原创内容,请读者以官方内容为准,如果您发现本资料有侵犯您的知识产权,请立即联系我们,我们将第一时间内删除该资料,以保障您的知识产权。
  访问,首页的栏目里有当地的天气预报。可以猜想,这里的天气预报,应该是根据来访者的ip判断其所在地给出当地的天气情况。问了一些朋友,也证实了这一点。项目里也需要天气预报这个小栏目,同事做过一个(从其他站点抓取的),不过实现不了根据IP显示当地的天气情况,需要用户自行选择,而且抓取的站点属于小站….其可靠性值得怀疑。。所以就萌生了抓取网易的天气预报的想法。。。对页面进行分析。。发现显示天气预报的区域是一个IFrame,IFrame里嵌入了如下链接/util/position1.html, 对这个地址访问直接跳转到另外一个链接/weather/news/qx1/56294.html,此链接显示了天气情况,如图:
  由此可以推测/util/position1.html,是在根据来访者的IP判断所属区域,然后返回一个该地区所对应的区位码,如: 56294代表成都。如何让网易来帮我们的站点来访者判断所属区域,并给出天气情况,并显示在自己的站点页面上呢?还得继续分析。。因为/util/position1.html,此链接一访问就转向到天气情况的链接,而无法查看源码。便猜想。。此页面肯定有些东西。。无奈之下。。WebRequest一下,出现了如下代码:
以下是引用片段:1&scriptlanguage="Javascript"&2varcity=newArray("安徽","黑龙江","山东","北京","湖北","山西","福建","湖南","陕西","甘肃","吉林","上海","广东","江苏","四川","广西","江西","天津","贵州","辽宁","西藏","海南","内蒙古","新疆","河北","宁夏","云南","河南","青海","浙江","重庆");3varweaths=newArray('58321','50953','54823','54511','57494','53772','59134','57679','57036','52889','54172','58367','59287','58238','56294','59431','58606','54527','57816','54342','55591','52856','53463','51463','53698','53614','56778','57083','52866','58457','57516'); 4 5functiongetCookieVal(offset){ 6varendstr=document.cookie.indexOf(";",offset); 7if(endstr==-1) 8endstr=document.cookie. 9returnunescape(document.cookie.substring(offset,endstr)); 10} 11functionGetCookie(name){ 12vararg=name+"="; 13varalen=arg. 14varclen=document.cookie. 15vari=0; 16while(i&clen){ 17varj=i+ 18if(document.cookie.substring(i,j)==arg) 19returngetCookieVal(j); 20i=document.cookie.indexOf("",i)+1; 21if(i==0) 22 23} 24return""; 25} 26functionSetCookie(cookieName,cookieValue,nDays){ 27vartoday=newDate(); 28varexpire=newDate(); 29if(nDays==null||nDays==0)nDays=1; 30expire.setTime(today.getTime()+*nDays); 31document.cookie=cookieName+"="+escape(cookieValue)+";path=/;domain=.;expires="+expire.toGMTString(); 32} 33functiongetCityWeatherID(cityname){ 34for(i=0;i&city.i++){ 35if(city[i]==cityname){ 36returnweaths[i]; 37} 38} 39return"54511"; 40} 41 42varNTES_WeatherAddr=GetCookie("NTES_WeatherAddr"); 43if(!NTES_WeatherAddr){ 44varloc=GetCookie("theaddr"); 45if(!loc){ 46document.write("&scripttype='text/javascript'src='http://202.108.39.152/ipquery'&&"+"/script&"); 47} 48} 49&/script& 50&script& 51if(!NTES_WeatherAddr){ 52NTES_WeatherAddr=getCityWeatherID(loc); 53} 54window.location.href="/weather/news/qx1/"+NTES_WeatherAddr+".html"; 55&/script& 56 57
  上面的这段js实现了对来访者IP判断并给出了天气预报结果的链接。Js里的此链接: http://202.108.39.152/ipquery,起到的是判断用户所在地的作用,返回的是来访者所在地省份。分析到此,想要的结果差不多就出来了…
  在客户端调用这段js获得天气预报结果的链接地址,然后交给服务端来处理。(为什么要交给后台处理,而不是直接显示呢?)因为直接得出的链接页面上,有多余的链接,还应用了样式(如图一),不便为自己所用,所以得处理掉。客户端调用服务端的方法很多,最初使用了Ajax框架Anthem,实现了过后,觉得有点杀鸡用牛刀的感觉。。无聊之余。。就又用CallBack实现了一次。。感觉恰到好处。。后来又发现。。__doPostBack也可以实现客户端调用服务端方法。。看来实现这么一个功能还真是简单。。。
  好了到此就实现了,自己想要的结果:(感觉有点遗憾的是只给出了省会城市的天气预报)
  前台页面代码Defaul.aspx:
以下是引用片段:1&%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"ResponseEncoding="GB2312"%& 2&!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"& 3&htmlxmlns="http://www.w3.org/1999/xhtml"& 4&headrunat="server"& 5&title&&/title& 6&script& 7varcity=newArray("安徽","黑龙江","山东","北京","湖北","山西","福建","湖南","陕西","甘肃","吉林","上海","广东","江苏","四川","广西","江西","天津","贵州","辽宁","西藏","海南","内蒙古","新疆","河北","宁夏","云南","河南","青海","浙江","重庆"); 8varweaths=newArray('58321','50953','54823','54511','57494','53772','59134','57679','57036','52889','54172','58367','59287','58238','56294','59431','58606','54527','57816','54342','55591','52856','53463','51463','53698','53614','56778','57083','52866','58457','57516'); 9 10varNTES_WeatherAddr=GetCookie("NTES_WeatherAddr"); 11if(!NTES_WeatherAddr){ 12varloc=GetCookie("theaddr"); 13if(!loc){ 14document.write("&scripttype='text/javascript'src='http://202.108.39.152/ipquery'&&"+"/script&"); 15} 16} 17 18functiongetCookieVal(offset){ 19varendstr=document.cookie.indexOf(";",offset); 20if(endstr==-1) 21endstr=document.cookie. 22returnunescape(document.cookie.substring(offset,endstr)); 23} 24 25functionGetCookie(name){ 26vararg=name+"="; 27varalen=arg. 28varclen=document.cookie. 29vari=0; 30while(i&clen){ 31varj=i+ 32if(document.cookie.substring(i,j)==arg) 33returngetCookieVal(j); 34i=document.cookie.indexOf("",i)+1; 35if(i==0) 36 37} 38return""; 39} 40 41functionSetCookie(cookieName,cookieValue,nDays){ 42vartoday=newDate(); 43varexpire=newDate(); 44if(nDays==null||nDays==0)nDays=1; 45expire.setTime(today.getTime()+*nDays); 46document.cookie=cookieName+"="+escape(cookieValue)+";path=/;domain=.;expires="+expire.toGMTString(); 47} 48 49//根据Ip服务器返回的省份名称获取对应的编号 50functiongetCityWeatherID(cityname){ 51for(i=0;i&city.i++){ 52if(city[i]==cityname){ 53returnweaths[i]; 54} 55} 56return"57816"; 57} 58 59//获取所在地天气预报结果的链接 60functiongetWeatherUrl(){ 61if(!NTES_WeatherAddr){ 62NTES_WeatherAddr=getCityWeatherID(loc); 63 64} 65varaddr="/weather/news/qx1/"+NTES_WeatherAddr+".html"; 66document.form1.Text1.value= 67} 68 69//客户端调用服务端方法实现对天气预报结果链接的页面内容进行解析,Anthem实现方式 70functionshowWeatherByAnthem(){ 71Anthem_InvokePageMethod("ShowWeatherByAnthem",[],getServerResult); 72} 73 74functiongetServerResult(result){ 75document.getElementById("result").innerHTML=result. 76} 77 78//客户端调用服务端方法实现对天气预报结果链接的页面内容进行解析,_doPostBack实现方式 79functionshowWeatherBylink() 80{ 81__doPostBack('LinkButton1',''); 82} 83 84//客户端调用服务端方法实现对天气预报结果链接的页面内容进行解析,CallBack实现方式 85functionshowWeatherByCallBack() 86{ 87varcontext=document.getElementById("result"); 88varweatherUrl=document.getElementById("Text1"); 89vararg="ShowWeatherByCall|"+weatherUrl. 90&%=ClientScript.GetCallbackEventReference(this,"arg","outPutResult","context")%&; 91} 92functionoutPutResult(result) 93{ 94document.getElementById("result").innerHTML= 95 96} 97&/script& 98&/head& 99&bodyonload="getWeatherUrl(),showWeatherByCallBack()"& 100&formid="form1"runat="server"& 101&spanid="result"&&/span& 102&inputid="Text1"type="hidden"runat="server"/& 103&/form& 104&/body& 105&/html& 106
  后台代码Default.cs:
以下是引用片段:1usingS 2usingSystem.D 3usingSystem.C 4usingSystem.W 5usingSystem.Web.S 6usingSystem.Web.UI; 7usingSystem.Web.UI.WebC 8usingSystem.IO; 9usingSystem.N 10usingA 11 12publicpartialclass_Default:System.Web.UI.Page,ICallbackEventHandler 13{ 14protectedvoidPage_Load(objectsender,EventArgse) 15{ 16Anthem.Manager.Register(this); 17 18} 19 20回调的固定格式#region回调的固定格式 21publicstringstr_ 22 23publicvoidRaiseCallbackEvent(stringthe_string) 24{ 25str_content=the_ 26} 27 28/**////&summary& 29///回调,解析客户端的参数 30///&/summary& 31///&returns&&/returns& 32publicstringGetCallbackResult() 33{ 34 35string[]parts=str_content.Split('|'); 36object[]theArgList=newobject[parts.Length-1]; 37for(intint_index=1;int_index&parts.Lint_index++) 38theArgList[int_index-1]=parts[int_index]; 39return(string)GetType().GetMethod(parts[0]).Invoke(this,theArgList); 40} 41#endregion 42 43解析url的页面内容的方法体#region解析url的页面内容的方法体 44/**////&summary& 45///Anthem方式,解析获取的url的页面内容 46///&/summary& 47///&paramname="url"&url&/param& 48///&returns&解析结果&/returns& 49[Anthem.Method] 50publicstringShowWeatherByAnthem() 51{ 52 53WebRequestrequest=WebRequest.Create(Text1.Value); 54request.Credentials=CredentialCache.DefaultC 55HttpWebResponseresponse=(HttpWebResponse)request.GetResponse(); 56StreamdataStream=response.GetResponseStream(); 57StreamReaderreader=newStreamReader(dataStream,System.Text.Encoding.Default); 58stringstr=reader.ReadToEnd(); 59returnstr.Substring(220); 60 61} 62//&summary& 63//回调方式,解析获取的url的页面内容 64//&/summary& 65//&paramname="url"&&/param& 66//&returns&&/returns& 67publicstringShowWeatherByCall(stringurl) 68{ 69WebRequestrequest=WebRequest.Create(url); 70request.Credentials=CredentialCache.DefaultC 71HttpWebResponseresponse=(HttpWebResponse)request.GetResponse(); 72StreamdataStream=response.GetResponseStream(); 73StreamReaderreader=newStreamReader(dataStream,System.Text.Encoding.Default); 74stringstr=reader.ReadToEnd(); 75returnstr.Substring(220); 76 77} 78#endregion 79} 80
阅读上一篇:
阅读下一篇:

我要回帖

更多关于 中国天气 的文章

 

随机推荐