ASP.NET获得新浪天气预报几种方式总结

开发 后端
刚赶工写了一个获取新浪天气预报的功能,顺便把代码分享了出来,以后再有这样的工作,大家可以直接把代码拿来使用。

1.利用新浪提供给的iframe直接嵌入,这种方式非常的简单,但是却没有交互性。代码如下:

<iframe frameborder="0" src="http://php.weather.sina.com.cn/widget/weather.php" 
  • 1.
scrolling="no" width="246" height="360"></iframe>
  • 1.

2.抓取当天的天气,以指定格式输出。

涉及的核心代码如下:


public static ArrayList GetWeather(string code)
        {
            /*
            [0] "北京 "string
            [1] "雷阵雨 "string
            [2] "9℃" string
            [3] "29℃"string
            [4] "小于3级"string
            */
            string html = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://weather.sina.com.cn/iframe/weather/" + code + "_w.html ");
                request.Method = "Get";
                //request.Timeout   =   1;
                request.ContentType = "application/x-www-form-urlencoded ";
                WebResponse response = request.GetResponse();
                Stream s = response.GetResponseStream();
                StreamReader sr = new StreamReader(s, System.Text.Encoding.GetEncoding("GB2312"));
                html = sr.ReadToEnd();
                s.Close();
                sr.Close();
            }
            catch (Exception err)
            {
                throw new Exception("访问地址出错~~~ ");
            }

            int count = html.Length;             int starIndex = html.IndexOf("

", starIndex, count - starIndex);             html = html.Substring(starIndex, endIndex - starIndex + 8);

            //得到城市             int cityStartIndex = html.IndexOf("", 0, html.Length);             int cityEndIndex = html.IndexOf("", 0, html.Length);             string City = html.Substring(cityStartIndex + 3, cityEndIndex - cityStartIndex - 3);

            //得到天气             int weatherStartIndex = html.IndexOf("", cityEndIndex);             int weatherEndIndex = html.IndexOf("", weatherStartIndex);             string Weather = html.Substring(weatherStartIndex + 3, weatherEndIndex - weatherStartIndex - 3);

            //得到温度

            int temperatureStartIndex = html.IndexOf("            int temperatureEndIndex = html.IndexOf("", weatherEndIndex + 3);             string Temperature = html.Substring(temperatureStartIndex + 21, temperatureEndIndex - temperatureStartIndex - 21);

            int int1 = Temperature.IndexOf("℃", 0);             int int2 = Temperature.IndexOf("~", 0);             int int3 = Temperature.IndexOf("℃", int2);

            string MinTemperature = Temperature.Substring(int2 + 1, int3 - int2);             string MaxTemperature = Temperature.Substring(0, int2 - int1 + 2);

            //得到风力             int windforceStartIndex = html.IndexOf("风力:", temperatureEndIndex);             int windforceEndIndex = html.IndexOf(" ", windforceStartIndex);             string Windforce = html.Substring(windforceStartIndex + 3, windforceEndIndex - windforceStartIndex - 3);

            if (Windforce.Contains("小于") && (!Windforce.Contains("等于")))                  //判断风力是否含有"小于"或"小于等于"字样将,如果有的话,将其替换为2-             {                 //Windforce = Windforce.Replace("小于", "2-");                 string strWindforce = Windforce.Substring(2, Windforce.Length - 3);                 int minWindforce = Int32.Parse(strWindforce) - 1;                 Windforce = Windforce.Replace("小于", minWindforce.ToString() + "-");

            }             else if (Windforce.Contains("小于等于"))             {                 string strWindforce = Windforce.Substring(4, Windforce.Length - 5);                 int minWindforce = Int32.Parse(strWindforce) - 1;                 Windforce = Windforce.Replace("小于等于", minWindforce.ToString() + "-");             }

            ArrayList al = new ArrayList();             al.Add(City);             al.Add(Weather);             al.Add(MinTemperature);             al.Add(MaxTemperature);             al.Add(Windforce);

            return al;         }

  • 1.

  • 1.

  • 1.
 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
 

 

 
 这里涉及到一个ConvertCode类,它的作用是用于把城市转换为对应的全国统一的编码,代码如下:
 

 


using System;
using System.Collections.Generic;
using System.Web;

namespace WebApplication8 {     public class ConvertCode     {         public static string ConvertCodeByCity(string City)         {             string Code = "";             switch (City)             {                 case "北京":                     Code = "110100";                     break;                 case "天津":                     Code = "120100";                     break;                 case "石家庄":                     Code = "130101";                     break;                 case "唐山":                     Code = "130201";                     break;                 case "秦皇岛":                     Code = "130301";                     break;                 case "张家口":                     Code = "130701";                     break;                 case "承德":                     Code = "130801";                     break;                 case "廊坊":                     Code = "131001";                     break;                 case "邯郸":                     Code = "130401";                     break;                 case "邢台":                     Code = "130501";                     break;                 case "保定":                     Code = "130601";                     break;                 case "沧州":                     Code = "130901";                     break;                 case "衡水":                     Code = "133001";                     break;                 case "太原":                     Code = "140101";                     break;                 case "大同":                     Code = "140201";                     break;                 case "阳泉":                     Code = "140301";                     break;                 case "晋城":                     Code = "140501";                     break;                 case "朔州":                     Code = "140601";                     break;                 case "忻州":                     Code = "142201";                     break;                 case "离石":                     Code = "142331";                     break;                 case "榆次":                     Code = "142401";                     break;                 case "临汾":                     Code = "142601";                     break;                 case "运城":                     Code = "142701";                     break;                 case "长治":                     Code = "140401";                     break;                 case "呼和浩特":                     Code = "150101";                     break;                 case "包头":                     Code = "150201";                     break;                 case "乌海":                     Code = "150301";                     break;                 case "集宁":                     Code = "152601";                     break;                 case "巴彦浩特":                           //这个城市搜索不到                     Code = "152701";                     break;                 case "临河":                     Code = "152801";                     break;                 case "鄂尔多斯":                           //这个城市搜索不到                     Code = "152921";                     break;                 case "赤峰":                     Code = "150401";                     break;                 case "通辽":                     Code = "152301";                     break;                 case "锡林浩特":                     Code = "152502";                     break;                 case "海拉尔":                            //这个城市搜索不到                     Code = "152101";                     break;                 case "乌兰浩特":                     Code = "152201";                     break;                 case "沈阳":                     Code = "210101";                     break;                 case "大连":                     Code = "210201";                     break;                 case "鞍山":                     Code = "210301";                     break;                 case "抚顺":                     Code = "210401";                     break;                 case "本溪":                     Code = "210501";                     break;                 case "锦州":                     Code = "210701";                     break;                 case "营口":                     Code = "210801";                     break;                 case "阜新":                     Code = "210901";                     break;                 case "盘锦":                     Code = "211101";                     break;                 case "铁岭":                     Code = "211201";                     break;                 case "朝阳":                     Code = "211301";                     break;                 case "葫芦岛":                     Code = "211401";                     break;                 case "丹东":                     Code = "210601";                     break;                 case "长春":                     Code = "220101";                     break;                 case "吉林":                     Code = "220201";                     break;                 case "四平":                     Code = "220301";                     break;                 case "辽源":                     Code = "220401";                     break;                 case "松原":                     Code = "220601";                     break;                 case "白城":                     Code = "222301";                     break;                 case "延边":                     Code = "222401";                     break;                 case "通化":                     Code = "220501";                     break;                 case "哈尔滨":                     Code = "230101";                     break;                 case "鸡西":                     Code = "230301";                     break;                 case "鹤岗":                     Code = "230401";                     break;                 case "双鸭山":                     Code = "230501";                     break;                 case "伊春":                     Code = "230701";                     break;                 case "佳木斯":                     Code = "230801";                     break;                 case "七台河":                     Code = "230901";                     break;                 case "牡丹江":                     Code = "231001";                     break;                 case "绥化":                     Code = "232301";                     break;                 case "齐齐哈尔":                     Code = "230201";                     break;                 case "大庆":                     Code = "230601";                     break;                 case "黑河":                     Code = "232601";                     break;                 case "大兴安岭":                     Code = "232700";                     break;                 case "上海":                     Code = "310100";                     break;                 case "南京":                     Code = "320101";                     break;                 case "无锡":                     Code = "320201";                     break;                 case "徐州":                     Code = "320301";                     break;                 case "常州":                     Code = "320401";                     break;                 case "苏州":                     Code = "320501";                     break;                 case "南通":                     Code = "320600";                     break;                 case "连云港":                     Code = "320701";                     break;                 case "淮阴":                     Code = "320801";                     break;                 case "盐城":                     Code = "320901";                     break;                 case "扬州":                     Code = "321001";                     break;                 case "镇江":                     Code = "321101";                     break;                 case "泰州":                     Code = "321102";                     break;                 case "宿迁":                     Code = "321103";                     break;                 case "杭州":                     Code = "330101";                     break;                 case "宁波":                     Code = "330201";                     break;                 case "温州":                     Code = "330301";                     break;                 case "嘉兴":                     Code = "330401";                     break;                 case "湖州":                     Code = "330501";                     break;                 case "绍兴":                     Code = "330601";                     break;                 case "金华":                     Code = "330701";                     break;                 case "衢州":                     Code = "330801";                     break;                 case "舟山":                     Code = "330901";                     break;                 case "丽水":                     Code = "332501";                     break;                 case "台州":                     Code = "332602";                     break;                 case "合肥":                     Code = "340101";                     break;                 case "芜湖":                     Code = "340201";                     break;                 case "蚌埠":                     Code = "340301";                     break;                 case "淮南":                     Code = "340401";                     break;                 case "马鞍山":                     Code = "340501";                     break;                 case "淮北":                     Code = "340601";                     break;                 case "铜陵":                     Code = "340701";                     break;                 case "安庆":                     Code = "340801";                     break;                 case "黄山市":                     Code = "341001";                     break;                 case "阜阳":                     Code = "342101";                     break;                 case "宿州":                     Code = "342201";                     break;                 case "滁州":                     Code = "342301";                     break;                 case "六安":                     Code = "342401";                     break;                 case "宣城":                     Code = "342501";                     break;                 case "巢湖":                     Code = "342601";                     break;                 case "池州":                     Code = "342901";                     break;                 case "福州":                     Code = "350101";                     break;                 case "厦门":                     Code = "350201";                     break;                 case "莆田":                     Code = "350301";                     break;                 case "三明":                     Code = "350401";                     break;                 case "泉州":                     Code = "350501";                     break;                 case "漳州":                     Code = "350601";                     break;                 case "南平":                     Code = "352101";                     break;                 case "宁德":                     Code = "352201";                     break;                 case "龙岩":                     Code = "352601";                     break;                 case "陇南":                     Code = "352602";                     break;                 case "庆阳":                     Code = "352603";                     break;                 case "南昌":                     Code = "360101";                     break;                 case "景德镇":                     Code = "360201";                     break;                 case "赣州":                     Code = "362101";                     break;                 case "萍乡":                     Code = "360301";                     break;                 case "九江":                     Code = "360401";                     break;                 case "新余":                     Code = "360501";                     break;                 case "鹰潭":                     Code = "360601";                     break;                 case "宜春":                     Code = "362201";                     break;                 case "上饶":                     Code = "362301";                     break;                 case "吉安":                     Code = "362401";                     break;                 case "济南":                     Code = "370101";                     break;                 case "青岛":                     Code = "370201";                     break;                 case "淄博":                     Code = "370301";                     break;                 case "枣庄":                     Code = "370401";                     break;                 case "东营":                     Code = "370501";                     break;                 case "烟台":                     Code = "370601";                     break;                 case "潍坊":                     Code = "370701";                     break;                 case "济宁":                     Code = "370801";                     break;                 case "泰安":                     Code = "370901";                     break;                 case "威海":                     Code = "371001";                     break;                 case "日照":                     Code = "371100";                     break;                 case "滨州":                     Code = "372301";                     break;                 case "德州":                     Code = "372401";                     break;                 case "聊城":                     Code = "372501";                     break;                 case "临沂":                     Code = "372801";                     break;                 case "菏泽":                     Code = "372901";                     break;                 case "莱芜":                     Code = "372902";                     break;                 case "郑州":                     Code = "410101";                     break;                 case "开封":                     Code = "410201";                     break;                 case "洛阳":                     Code = "410301";                     break;                 case "平顶山":                     Code = "410401";                     break;                 case "安阳":                     Code = "410501";                     break;                 case "鹤壁":                     Code = "410601";                     break;                 case "新乡":                     Code = "410701";                     break;                 case "焦作":                     Code = "410801";                     break;                 case "濮阳":                     Code = "410901";                     break;                 case "许昌":                     Code = "411001";                     break;                 case "漯河":                     Code = "411101";                     break;                 case "三门峡":                     Code = "411201";                     break;                 case "商丘":                     Code = "412301";                     break;                 case "周口":                     Code = "412701";                     break;                 case "驻马店":                     Code = "412801";                     break;                 case "南阳":                     Code = "412901";                     break;                 case "信阳":                     Code = "413001";                     break;                 case "武汉":                     Code = "420101";                     break;                 case "黄石":                     Code = "420201";                     break;                 case "十堰":                     Code = "420301";                     break;                 case "随州":                     Code = "420400";                     break;                 case "宜昌":                     Code = "420501";                     break;                 case "襄樊":                     Code = "420601";                     break;                 case "鄂州":                     Code = "420701";                     break;                 case "荆门":                     Code = "420801";                     break;                 case "黄冈":                     Code = "422103";                     break;                 case "孝感":                     Code = "422201";                     break;                 case "咸宁":                     Code = "422301";                     break;                 case "荆州":                     Code = "422421";                     break;                 case "恩施":                     Code = "422801";                     break;                 case "长沙":                     Code = "430101";                     break;                 case "衡阳":                     Code = "430401";                     break;                 case "邵阳":                     Code = "430501";                     break;                 case "郴州":                     Code = "432801";                     break;                 case "永州":                     Code = "432901";                     break;                 case "韶山":                     Code = "430801";                     break;                 case "张家界":                     Code = "430802";                     break;                 case "怀化":                     Code = "433001";                     break;                 case "吉首":                     Code = "433101";                     break;                 case "株洲":                     Code = "430201";                     break;                 case "湘潭":                     Code = "430301";                     break;                 case "岳阳":                     Code = "430601";                     break;                 case "常德":                     Code = "430701";                     break;                 case "益阳":                     Code = "432301";                     break;                 case "娄底":                     Code = "432501";                     break;                 case "广州":                     Code = "440101";                     break;                 case "佛山":                     Code = "440601";                     break;                 case "深圳":                     Code = "440301";                     break;                 case "汕尾":                     Code = "441501";                     break;                 case "惠州":                     Code = "441301";                     break;                 case "河源":                     Code = "441601";                     break;                 case "清远":                     Code = "441801";                     break;                 case "东莞":                     Code = "441901";                     break;                 case "珠海":                     Code = "440401";                     break;                 case "江门":                     Code = "440701";                     break;                 case "肇庆":                     Code = "441201";                     break;                 case "中山":                     Code = "442001";                     break;                 case "湛江":                     Code = "440801";                     break;                 case "茂名":                     Code = "440901";                     break;                 case "韶关":                     Code = "440201";                     break;                 case "汕头":                     Code = "440501";                     break;                 case "梅州":                     Code = "441401";                     break;                 case "阳江":                     Code = "441701";                     break;                 case "潮州":                     Code = "441702";                     break;                 case "顺德":                     Code = "441703";                     break;                 case "揭阳":                     Code = "441704";                     break;                 case "云浮":                     Code = "441705";                     break;                 case "南宁":                     Code = "450101";                     break;                 case "梧州":                     Code = "450401";                     break;                 case "玉林":                     Code = "452501";                     break;                 case "桂林":                     Code = "450301";                     break;                 case "百色":                     Code = "452601";                     break;                 case "河池":                     Code = "452701";                     break;                 case "钦州":                     Code = "452802";                     break;                 case "柳州":                     Code = "450201";                     break;                 case "北海":                     Code = "450501";                     break;                 case "防城港":                     Code = "450502";                     break;                 case "贵港":                     Code = "450503";                     break;                 case "贺州":                     Code = "450504";                     break;                 case "海口":                     Code = "460100";                     break;                 case "三亚":                     Code = "460200";                     break;                 case "西沙群岛":                     Code = "460300";                     break;                 case "成都":                     Code = "510101";                     break;                 case "眉山":                     Code = "513321";                     break;                 case "雅安":                     Code = "513101";                     break;                 case "峨嵋山":                     Code = "513229";                     break;                 case "自贡":                     Code = "510301";                     break;                 case "重庆":                     Code = "500100";                     break;                 case "万州":                     Code = "500102";                     break;                 case "涪陵":                     Code = "500103";                     break;                 case "南充":                     Code = "512901";                     break;                 case "泸州":                     Code = "510501";                     break;                 case "德阳":                     Code = "510601";                     break;                 case "绵阳":                     Code = "510701";                     break;                 case "遂宁":                     Code = "510901";                     break;                 case "内江":                     Code = "511001";                     break;                 case "乐山":                     Code = "511101";                     break;                 case "宜宾":                     Code = "512501";                     break;                 case "广元":                     Code = "510801";                     break;                 case "达州":                     Code = "513021";                     break;                 case "资阳":                     Code = "513401";                     break;                 case "攀枝花":                     Code = "510401";                     break;                 case "阿坝":                     Code = "510402";                     break;                 case "甘孜":                     Code = "510403";                     break;                 case "凉山":                     Code = "510404";                     break;                 case "广安":                     Code = "510405";                     break;                 case "巴中":                     Code = "510406";                     break;                 case "黔江":                     Code = "500239";                     break;                 case "贵阳":                     Code = "520101";                     break;                 case "六盘水":                     Code = "520200";                     break;                 case "铜仁":                     Code = "522201";                     break;                 case "安顺":                     Code = "522501";                     break;                 case "凯里":                     Code = "522601";                     break;                 case "都匀":                     Code = "522701";                     break;                 case "兴义":                     Code = "522301";                     break;                 case "毕节":                     Code = "522421";                     break;                 case "遵义":                     Code = "522101";                     break;                 case "昆明":                     Code = "530101";                     break;                 case "德宏":                     Code = "530201";                     break;                 case "曲靖":                     Code = "532201";                     break;                 case "楚雄":                     Code = "532301";                     break;                 case "玉溪":                     Code = "532401";                     break;                 case "红河":                     Code = "532501";                     break;                 case "文山":                     Code = "532621";                     break;                 case "思茅":                     Code = "532721";                     break;                 case "昭通":                     Code = "532101";                     break;                 case "西双版纳":                     Code = "532821";                     break;                 case "大理":                     Code = "532901";                     break;                 case "保山":                     Code = "533001";                     break;                 case "怒江":                     Code = "533121";                     break;                 case "丽江":                     Code = "533221";                     break;                 case "迪庆":                     Code = "533321";                     break;                 case "临沧":                     Code = "533521";                     break;                 case "拉萨":                     Code = "540101";                     break;                 case "昌都":                     Code = "542121";                     break;                 case "山南":                     Code = "542221";                     break;                 case "日喀则":                     Code = "542301";                     break;                 case "那曲":                     Code = "542421";                     break;                 case "阿里":                     Code = "542523";                     break;                 case "林芝":                     Code = "542621";                     break;                 case "西安":                     Code = "610101";                     break;                 case "铜川":                     Code = "610201";                     break;                 case "宝鸡":                     Code = "610301";                     break;                 case "咸阳":                     Code = "610401";                     break;                 case "渭南":                     Code = "612101";                     break;                 case "汉中":                     Code = "612301";                     break;                 case "安康":                     Code = "612401";                     break;                 case "商洛":                     Code = "612501";                     break;                 case "延安":                     Code = "612601";                     break;                 case "榆林":                     Code = "612701";                     break;                 case "兰州":                     Code = "620101";                     break;                 case "白银":                     Code = "620401";                     break;                 case "金昌":                     Code = "620301";                     break;                 case "天水":                     Code = "620501";                     break;                 case "张掖":                     Code = "622201";                     break;                 case "武威":                     Code = "622301";                     break;                 case "定西":                     Code = "622421";                     break;                 case "平凉":                     Code = "622701";                     break;                 case "临夏":                     Code = "622901";                     break;                 case "嘉峪关":                     Code = "620201";                     break;                 case "酒泉":                     Code = "622102";                     break;                 case "西宁":                     Code = "630100";                     break;                 case "果洛":                     Code = "632121";                     break;                 case "海西":                     Code = "632221";                     break;                 case "格尔木":                     Code = "632321";                     break;                 case "海东":                     Code = "632521";                     break;                 case "海北":                     Code = "632621";                     break;                 case "玉树":                     Code = "632721";                     break;                 case "黄南":                     Code = "632802";                     break;                 case "银川":                     Code = "640101";                     break;                 case "石嘴山":                     Code = "640201";                     break;                 case "吴忠":                     Code = "642101";                     break;                 case "固原":                     Code = "642221";                     break;                 case "乌鲁木齐":                     Code = "650101";                     break;                 case "克拉玛依":                     Code = "650201";                     break;                 case "吐鲁番":                     Code = "652101";                     break;                 case "哈密":                     Code = "652201";                     break;                 case "昌吉":                     Code = "652301";                     break;                 case "博乐":                     Code = "652701";                     break;                 case "库尔勒":                     Code = "652801";                     break;                 case "阿克苏":                     Code = "652901";                     break;                 case "克州":                     Code = "653001";                     break;                 case "喀什":                     Code = "653101";                     break;                 case "伊犁":                     Code = "654101";                     break;                 case "石河子":                     Code = "655001";                     break;                 case "塔城":                     Code = "655002";                     break;                 case "阿勒泰":                     Code = "655003";                     break;                 case "台北":                     Code = "710001";                     break;                 case "辽阳":                     Code = "211001";                     break;                 case "和田":                     Code = "653201";                     break;                 case "澳门":                     Code = "820000";                     break;                 case "香港":                     Code = "810000";                     break;                                     default:                     break;             }             return Code;         }     } }

  • 1.

 

", thirdWindforceStartIndex);                 string ThirdWindforce = Html.Substring(thirdWindforceStartIndex + 3, thirdWindforceEndIndex - thirdWindforceStartIndex - 3);

                if (ThirdWindforce.Contains("至"))                 {

                }                 else if (ThirdWindforce.Contains("<"))                  //判断风力是否含有"<"或"≤"字样将,如果有的话,将其替换为2-                 {                     string strWindforce = ThirdWindforce.Substring(1, ThirdWindforce.Length - 2);                     int minWindforce = Int32.Parse(strWindforce) - 1;                     ThirdWindforce = ThirdWindforce.Replace("<", minWindforce.ToString() + "-");                 }                 else if (ThirdWindforce.Contains("≤"))                 {                     string strWindforce = ThirdWindforce.Substring(1, ThirdWindforce.Length - 2);                     int minWindforce = Int32.Parse(strWindforce) - 1;                     ThirdWindforce = ThirdWindforce.Replace("≤", minWindforce.ToString() + "-");                 }

                #endregion

                al.Add(FirstDayAndCity);                 al.Add(FirstDate);                 al.Add(FirstWeather);                 al.Add(FirstMinTemperature);                 al.Add(FirstMaxTemperature);                 al.Add(FirstWindforce);

                al.Add(secondDayAndCity);                 al.Add(SecondDate);                 al.Add(SecondWeather);                 al.Add(SecondMinTemperature);                 al.Add(SecondMaxTemperature);                 al.Add(SecondWindforce);

                al.Add(thirdDayAndCity);                 al.Add(ThirdDate);                 al.Add(ThirdWeather);                 al.Add(ThirdMinTemperature);                 al.Add(ThirdMaxTemperature);                 al.Add(ThirdWindforce);             }             catch (Exception err)             {

            }

            return al;         }

3.获取三天以内的天气,以指定格式输出。

核心代码如下:

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
  • 173.
  • 174.
  • 175.
  • 176.
  • 177.
  • 178.
  • 179.
  • 180.
  • 181.
  • 182.
  • 183.
  • 184.
  • 185.
  • 186.
  • 187.
  • 188.
  • 189.
  • 190.
  • 191.
  • 192.
  • 193.
  • 194.
  • 195.
  • 196.
  • 197.
  • 198.
  • 199.
  • 200.
  • 201.
  • 202.
  • 203.
  • 204.
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216.
  • 217.
  • 218.
  • 219.
  • 220.
  • 221.
  • 222.
  • 223.
  • 224.
  • 225.
  • 226.
  • 227.
  • 228.
  • 229.
  • 230.
  • 231.
  • 232.
  • 233.
  • 234.
  • 235.
  • 236.
  • 237.
  • 238.
  • 239.
  • 240.
  • 241.
  • 242.
  • 243.
  • 244.
  • 245.
  • 246.
  • 247.
  • 248.
  • 249.
  • 250.
  • 251.
  • 252.
  • 253.
  • 254.
  • 255.
  • 256.
  • 257.
  • 258.
  • 259.
  • 260.
  • 261.
  • 262.
  • 263.
  • 264.
  • 265.
  • 266.
  • 267.
  • 268.
  • 269.
  • 270.
  • 271.
  • 272.
  • 273.
  • 274.
  • 275.
  • 276.
  • 277.
  • 278.
  • 279.
  • 280.
  • 281.
  • 282.
  • 283.
  • 284.
  • 285.
  • 286.
  • 287.
  • 288.
  • 289.
  • 290.
  • 291.
  • 292.
  • 293.
  • 294.
  • 295.
  • 296.
  • 297.
  • 298.
  • 299.
  • 300.
  • 301.
  • 302.
  • 303.
  • 304.
  • 305.
  • 306.
  • 307.
  • 308.
  • 309.
  • 310.
  • 311.
  • 312.
  • 313.
  • 314.
  • 315.
  • 316.
  • 317.
  • 318.
  • 319.
  • 320.
  • 321.
  • 322.
  • 323.
  • 324.
  • 325.
  • 326.
  • 327.
  • 328.
  • 329.
  • 330.
  • 331.
  • 332.
  • 333.
  • 334.
  • 335.
  • 336.
  • 337.
  • 338.
  • 339.
  • 340.
  • 341.
  • 342.
  • 343.
  • 344.
  • 345.
  • 346.
  • 347.
  • 348.
  • 349.
  • 350.
  • 351.
  • 352.
  • 353.
  • 354.
  • 355.
  • 356.
  • 357.
  • 358.
  • 359.
  • 360.
  • 361.
  • 362.
  • 363.
  • 364.
  • 365.
  • 366.
  • 367.
  • 368.
  • 369.
  • 370.
  • 371.
  • 372.
  • 373.
  • 374.
  • 375.
  • 376.
  • 377.
  • 378.
  • 379.
  • 380.
  • 381.
  • 382.
  • 383.
  • 384.
  • 385.
  • 386.
  • 387.
  • 388.
  • 389.
  • 390.
  • 391.
  • 392.
  • 393.
  • 394.
  • 395.
  • 396.
  • 397.
  • 398.
  • 399.
  • 400.
  • 401.
  • 402.
  • 403.
  • 404.
  • 405.
  • 406.
  • 407.
  • 408.
  • 409.
  • 410.
  • 411.
  • 412.
  • 413.
  • 414.
  • 415.
  • 416.
  • 417.
  • 418.
  • 419.
  • 420.
  • 421.
  • 422.
  • 423.
  • 424.
  • 425.
  • 426.
  • 427.
  • 428.
  • 429.
  • 430.
  • 431.
  • 432.
  • 433.
  • 434.
  • 435.
  • 436.
  • 437.
  • 438.
  • 439.
  • 440.
  • 441.
  • 442.
  • 443.
  • 444.
  • 445.
  • 446.
  • 447.
  • 448.
  • 449.
  • 450.
  • 451.
  • 452.
  • 453.
  • 454.
  • 455.
  • 456.
  • 457.
  • 458.
  • 459.
  • 460.
  • 461.
  • 462.
  • 463.
  • 464.
  • 465.
  • 466.
  • 467.
  • 468.
  • 469.
  • 470.
  • 471.
  • 472.
  • 473.
  • 474.
  • 475.
  • 476.
  • 477.
  • 478.
  • 479.
  • 480.
  • 481.
  • 482.
  • 483.
  • 484.
  • 485.
  • 486.
  • 487.
  • 488.
  • 489.
  • 490.
  • 491.
  • 492.
  • 493.
  • 494.
  • 495.
  • 496.
  • 497.
  • 498.
  • 499.
  • 500.
  • 501.
  • 502.
  • 503.
  • 504.
  • 505.
  • 506.
  • 507.
  • 508.
  • 509.
  • 510.
  • 511.
  • 512.
  • 513.
  • 514.
  • 515.
  • 516.
  • 517.
  • 518.
  • 519.
  • 520.
  • 521.
  • 522.
  • 523.
  • 524.
  • 525.
  • 526.
  • 527.
  • 528.
  • 529.
  • 530.
  • 531.
  • 532.
  • 533.
  • 534.
  • 535.
  • 536.
  • 537.
  • 538.
  • 539.
  • 540.
  • 541.
  • 542.
  • 543.
  • 544.
  • 545.
  • 546.
  • 547.
  • 548.
  • 549.
  • 550.
  • 551.
  • 552.
  • 553.
  • 554.
  • 555.
  • 556.
  • 557.
  • 558.
  • 559.
  • 560.
  • 561.
  • 562.
  • 563.
  • 564.
  • 565.
  • 566.
  • 567.
  • 568.
  • 569.
  • 570.
  • 571.
  • 572.
  • 573.
  • 574.
  • 575.
  • 576.
  • 577.
  • 578.
  • 579.
  • 580.
  • 581.
  • 582.
  • 583.
  • 584.
  • 585.
  • 586.
  • 587.
  • 588.
  • 589.
  • 590.
  • 591.
  • 592.
  • 593.
  • 594.
  • 595.
  • 596.
  • 597.
  • 598.
  • 599.
  • 600.
  • 601.
  • 602.
  • 603.
  • 604.
  • 605.
  • 606.
  • 607.
  • 608.
  • 609.
  • 610.
  • 611.
  • 612.
  • 613.
  • 614.
  • 615.
  • 616.
  • 617.
  • 618.
  • 619.
  • 620.
  • 621.
  • 622.
  • 623.
  • 624.
  • 625.
  • 626.
  • 627.
  • 628.
  • 629.
  • 630.
  • 631.
  • 632.
  • 633.
  • 634.
  • 635.
  • 636.
  • 637.
  • 638.
  • 639.
  • 640.
  • 641.
  • 642.
  • 643.
  • 644.
  • 645.
  • 646.
  • 647.
  • 648.
  • 649.
  • 650.
  • 651.
  • 652.
  • 653.
  • 654.
  • 655.
  • 656.
  • 657.
  • 658.
  • 659.
  • 660.
  • 661.
  • 662.
  • 663.
  • 664.
  • 665.
  • 666.
  • 667.
  • 668.
  • 669.
  • 670.
  • 671.
  • 672.
  • 673.
  • 674.
  • 675.
  • 676.
  • 677.
  • 678.
  • 679.
  • 680.
  • 681.
  • 682.
  • 683.
  • 684.
  • 685.
  • 686.
  • 687.
  • 688.
  • 689.
  • 690.
  • 691.
  • 692.
  • 693.
  • 694.
  • 695.
  • 696.
  • 697.
  • 698.
  • 699.
  • 700.
  • 701.
  • 702.
  • 703.
  • 704.
  • 705.
  • 706.
  • 707.
  • 708.
  • 709.
  • 710.
  • 711.
  • 712.
  • 713.
  • 714.
  • 715.
  • 716.
  • 717.
  • 718.
  • 719.
  • 720.
  • 721.
  • 722.
  • 723.
  • 724.
  • 725.
  • 726.
  • 727.
  • 728.
  • 729.
  • 730.
  • 731.
  • 732.
  • 733.
  • 734.
  • 735.
  • 736.
  • 737.
  • 738.
  • 739.
  • 740.
  • 741.
  • 742.
  • 743.
  • 744.
  • 745.
  • 746.
  • 747.
  • 748.
  • 749.
  • 750.
  • 751.
  • 752.
  • 753.
  • 754.
  • 755.
  • 756.
  • 757.
  • 758.
  • 759.
  • 760.
  • 761.
  • 762.
  • 763.
  • 764.
  • 765.
  • 766.
  • 767.
  • 768.
  • 769.
  • 770.
  • 771.
  • 772.
  • 773.
  • 774.
  • 775.
  • 776.
  • 777.
  • 778.
  • 779.
  • 780.
  • 781.
  • 782.
  • 783.
  • 784.
  • 785.
  • 786.
  • 787.
  • 788.
  • 789.
  • 790.
  • 791.
  • 792.
  • 793.
  • 794.
  • 795.
  • 796.
  • 797.
  • 798.
  • 799.
  • 800.
  • 801.
  • 802.
  • 803.
  • 804.
  • 805.
  • 806.
  • 807.
  • 808.
  • 809.
  • 810.
  • 811.
  • 812.
  • 813.
  • 814.
  • 815.
  • 816.
  • 817.
  • 818.
  • 819.
  • 820.
  • 821.
  • 822.
  • 823.
  • 824.
  • 825.
  • 826.
  • 827.
  • 828.
  • 829.
  • 830.
  • 831.
  • 832.
  • 833.
  • 834.
  • 835.
  • 836.
  • 837.
  • 838.
  • 839.
  • 840.
  • 841.
  • 842.
  • 843.
  • 844.
  • 845.
  • 846.
  • 847.
  • 848.
  • 849.
  • 850.
  • 851.
  • 852.
  • 853.
  • 854.
  • 855.
  • 856.
  • 857.
  • 858.
  • 859.
  • 860.
  • 861.
  • 862.
  • 863.
  • 864.
  • 865.
  • 866.
  • 867.
  • 868.
  • 869.
  • 870.
  • 871.
  • 872.
  • 873.
  • 874.
  • 875.
  • 876.
  • 877.
  • 878.
  • 879.
  • 880.
  • 881.
  • 882.
  • 883.
  • 884.
  • 885.
  • 886.
  • 887.
  • 888.
  • 889.
  • 890.
  • 891.
  • 892.
  • 893.
  • 894.
  • 895.
  • 896.
  • 897.
  • 898.
  • 899.
  • 900.
  • 901.
  • 902.
  • 903.
  • 904.
  • 905.
  • 906.
  • 907.
  • 908.
  • 909.
  • 910.
  • 911.
  • 912.
  • 913.
  • 914.
  • 915.
  • 916.
  • 917.
  • 918.
  • 919.
  • 920.
  • 921.
  • 922.
  • 923.
  • 924.
  • 925.
  • 926.
  • 927.
  • 928.
  • 929.
  • 930.
  • 931.
  • 932.
  • 933.
  • 934.
  • 935.
  • 936.
  • 937.
  • 938.
  • 939.
  • 940.
  • 941.
  • 942.
  • 943.
  • 944.
  • 945.
  • 946.
  • 947.
  • 948.
  • 949.
  • 950.
  • 951.
  • 952.
  • 953.
  • 954.
  • 955.
  • 956.
  • 957.
  • 958.
  • 959.
  • 960.
  • 961.
  • 962.
  • 963.
  • 964.
  • 965.
  • 966.
  • 967.
  • 968.
  • 969.
  • 970.
  • 971.
  • 972.
  • 973.
  • 974.
  • 975.
  • 976.
  • 977.
  • 978.
  • 979.
  • 980.
  • 981.
  • 982.
  • 983.
  • 984.
  • 985.
  • 986.
  • 987.
  • 988.
  • 989.
  • 990.
  • 991.
  • 992.
  • 993.
  • 994.
  • 995.
  • 996.
  • 997.
  • 998.
  • 999.
  • 1000.
  • 1001.
  • 1002.
  • 1003.
  • 1004.
  • 1005.
  • 1006.
  • 1007.
  • 1008.
  • 1009.
  • 1010.
  • 1011.
  • 1012.
  • 1013.
  • 1014.
  • 1015.
  • 1016.
  • 1017.
  • 1018.
  • 1019.
  • 1020.
  • 1021.
  • 1022.
  • 1023.
  • 1024.
  • 1025.
  • 1026.
  • 1027.
  • 1028.
  • 1029.
  • 1030.
  • 1031.
  • 1032.
  • 1033.
  • 1034.
  • 1035.
  • 1036.
  • 1037.
  • 1038.
  • 1039.
  • 1040.
  • 1041.
  • 1042.
  • 1043.
  • 1044.
  • 1045.
  • 1046.
  • 1047.
  • 1048.
  • 1049.
  • 1050.
  • 1051.
  • 1052.
  • 1053.
  • 1054.
  • 1055.
  • 1056.
  • 1057.
  • 1058.
  • 1059.
  • 1060.
  • 1061.
  • 1062.
  • 1063.
  • 1064.
  • 1065.
  • 1066.
  • 1067.
  • 1068.
  • 1069.
  • 1070.
  • 1071.
  • 1072.
  • 1073.
  • 1074.
  • 1075.
  • 1076.
  • 1077.
  • 1078.
  • 1079.
  • 1080.
  • 1081.
  • 1082.
  • 1083.
  • 1084.
  • 1085.
  • 1086.
  • 1087.
  • 1088.
  • 1089.
  • 1090.
  • 1091.
  • 1092.
  • 1093.
  • 1094.
  • 1095.
  • 1096.
  • 1097.
  • 1098.
  • 1099.
  • 1100.
  • 1101.
  • 1102.
  • 1103.
  • 1104.
  • 1105.
  • 1106.
  • 1107.
  • 1108.
  • 1109.
  • 1110.
  • 1111.
  • 1112.
  • 1113.
  • 1114.
  • 1115.
  • 1116.
  • 1117.
  • 1118.
  • 1119.
  • 1120.
  • 1121.
  • 1122.
  • 1123.
  • 1124.
  • 1125.
  • 1126.
  • 1127.
  • 1128.
  • 1129.
  • 1130.
  • 1131.
  • 1132.
  • 1133.
  • 1134.
  • 1135.
  • 1136.
  • 1137.
  • 1138.
  • 1139.
  • 1140.
  • 1141.
  • 1142.
  • 1143.
  • 1144.
  • 1145.
  • 1146.

3.获取三天以内的天气,以指定格式输出。

核心代码如下:

public static ArrayList GetThreeDayWeather(string City)
        {
            ArrayList al = new ArrayList();
            /*
           [0] "今天 北京"              string
           [1] "2009-04-17,星期五"     string
           [2] "晴转多云"               string
           [3] "12℃"                   string
           [4] "25℃"                   string
           [5] "2-3级"                  string
           [6] "明天 北京"              string
           [7] "2009-04-18,星期六"     string
           [8] "阴转阵雨"               string
           [9] "11℃"                   string
           [10] "21℃"                  string
           [11] "2-3级"                 string
           [12] "后天 北京"             string
           [13] "2009-04-19,星期日"    string
           [14] "多云转阵雨"            string
           [15] "9℃"                   string
           [16] "20℃"                  string
           [17] "2-3级"                 string         
           */
            string Html = "";       //返回来的网页的源码
            ASCIIEncoding encoding = new ASCIIEncoding();
            string postData = string.Format("city=" + City);
            byte[] data = encoding.GetBytes(postData);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
 
  • 1.

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://php.weather.sina.com.cn/search.php?city=" + System.Web.HttpContext.Current.Server.UrlEncode(City) + "&f=1&dpc=1");
                request.Method = "Get";
                request.ContentType = "application/x-www-form-urlencoded ";
                WebResponse response = request.GetResponse();
                Stream s = response.GetResponseStream();
                StreamReader sr = new StreamReader(s, System.Text.Encoding.GetEncoding("GB2312"));
                Html = sr.ReadToEnd();
                s.Close();
                sr.Close();
            }
            catch (Exception err)
            {
                throw new Exception("访问地址出错~~~ ");
            }

            //去除多余代码,便于分析跟提高效率
            int count = Html.Length;
            int starIndex = Html.IndexOf("

", 0, count);
            int endIndex = Html.IndexOf("
", 0);
            Html = Html.Substring(starIndex, endIndex - starIndex);

            try
            {
                #region 得到今天的天气

                //得到今天的标识跟城市
                int firstDayAndCityStartIndex = Html.IndexOf("

", 0);
                int firstDayAndCityEndIndex = Html.IndexOf("

", 0);
                string FirstDayAndCity = Html.Substring(firstDayAndCityStartIndex + 4, firstDayAndCityEndIndex - firstDayAndCityStartIndex - 4);

                //得到今天的日期跟星期
                int firstDateStartIndex = Html.IndexOf("

", firstDayAndCityEndIndex);
                int firstDateEndIndex = Html.IndexOf("

", firstDayAndCityEndIndex);
                string FirstDate = Html.Substring(firstDateStartIndex + 3, firstDateEndIndex - firstDateStartIndex - 3).Replace(" ", ",");

                //得到今天的天气
                int firstWeatherStartIndex = Html.IndexOf("

", firstDateEndIndex);
                int firstWeatherEndIndex = Html.IndexOf(" ", firstWeatherStartIndex + 24);
                string FirstWeather = Html.Substring(firstWeatherStartIndex + 24, firstWeatherEndIndex - firstWeatherStartIndex - 24);

                //得到今天的温度

                int firstTemperatureStartIndex = firstWeatherEndIndex + 1;
                int firstTemperatureEndIndex = Html.IndexOf("

", firstTemperatureStartIndex);
                string FirstTemperature = Html.Substring(firstTemperatureStartIndex, firstTemperatureEndIndex - firstTemperatureStartIndex);
                int int1 = FirstTemperature.IndexOf("℃", 0);
                int int2 = FirstTemperature.IndexOf("~", 0);
                int int3 = FirstTemperature.IndexOf("℃", int2);
                string FirstMinTemperature = FirstTemperature.Substring(int2 + 1, int3 - int2);
                string FirstMaxTemperature = FirstTemperature.Substring(0, int2 - int1 + 2);

                //得到今天的风力
                int firstWindforceStartIndex = Html.IndexOf("风力:", firstTemperatureEndIndex);
                int firstWindforceEndIndex = Html.IndexOf("

", firstWindforceStartIndex);
                string FirstWindforce = Html.Substring(firstWindforceStartIndex + 3, firstWindforceEndIndex - firstWindforceStartIndex - 3);

                if (FirstWindforce.Contains("至"))
                {

                }
                else if (FirstWindforce.Contains("<"))                  //判断风力是否含有"<"或"≤"字样将,如果有的话,将其替换为2-
                {
                    string strWindforce = FirstWindforce.Substring(1, FirstWindforce.Length - 2);
                    int minWindforce = Int32.Parse(strWindforce) - 1;
                    FirstWindforce = FirstWindforce.Replace("<", minWindforce.ToString() + "-");
                }
                else if (FirstWindforce.Contains("≤"))
                {
                    string strWindforce = FirstWindforce.Substring(1, FirstWindforce.Length - 2);
                    int minWindforce = Int32.Parse(strWindforce) - 1;
                    FirstWindforce = FirstWindforce.Replace("≤", minWindforce.ToString() + "-");
                }

                #endregion

                #region 得到明天的天气

                //得到明天的标识跟城市
                int secondDayAndCityStartIndex = Html.IndexOf("

", firstWindforceEndIndex);
                int secondDayAndCityEndIndex = Html.IndexOf("

", secondDayAndCityStartIndex);
                string secondDayAndCity = Html.Substring(secondDayAndCityStartIndex + 4, secondDayAndCityEndIndex - secondDayAndCityStartIndex - 4);

                //得到明天的日期跟星期
                int secondDateStartIndex = Html.IndexOf("

", secondDayAndCityEndIndex);
                int secondDateEndIndex = Html.IndexOf("

", secondDateStartIndex);
                string SecondDate = Html.Substring(secondDateStartIndex + 3, secondDateEndIndex - secondDateStartIndex - 3).Replace(" ", ",");

                //得到明天的天气
                int secondWeatherStartIndex = Html.IndexOf("

", secondDateEndIndex);
                int secondWeatherEndIndex = Html.IndexOf(" ", secondWeatherStartIndex + 24);
                string SecondWeather = Html.Substring(secondWeatherStartIndex + 24, secondWeatherEndIndex - secondWeatherStartIndex - 24);

                //得到明天的温度

                int secondTemperatureStartIndex = secondWeatherEndIndex + 1;
                int secondTemperatureEndIndex = Html.IndexOf("

", secondTemperatureStartIndex);
                string SecondTemperature = Html.Substring(secondTemperatureStartIndex, secondTemperatureEndIndex - secondTemperatureStartIndex);
                int int4 = SecondTemperature.IndexOf("℃", 0);
                int int5 = SecondTemperature.IndexOf("~", 0);
                int int6 = SecondTemperature.IndexOf("℃", int2);
                string SecondMinTemperature = SecondTemperature.Substring(int5 + 1, int6 - int5);
                string SecondMaxTemperature = SecondTemperature.Substring(0, int5 - int4 + 2);

                //得到明天的风力
                int secondWindforceStartIndex = Html.IndexOf("风力:", secondTemperatureEndIndex);
                int secondWindforceEndIndex = Html.IndexOf("

", secondWindforceStartIndex);
                string SecondWindforce = Html.Substring(secondWindforceStartIndex + 3, secondWindforceEndIndex - secondWindforceStartIndex - 3);

                if (SecondWindforce.Contains("至"))
                {

                }
                else if (SecondWindforce.Contains("<"))                  //判断风力是否含有"<"或"≤"字样将,如果有的话,将其替换为2-
                {
                    string strWindforce = SecondWindforce.Substring(1, FirstWindforce.Length - 2);
                    int minWindforce = Int32.Parse(strWindforce) - 1;
                    SecondWindforce = SecondWindforce.Replace("<", minWindforce.ToString() + "-");
                }
                else if (SecondWindforce.Contains("≤"))
                {
                    string strWindforce = SecondWindforce.Substring(1, SecondWindforce.Length - 2);
                    int minWindforce = Int32.Parse(strWindforce) - 1;
                    SecondWindforce = SecondWindforce.Replace("≤", minWindforce.ToString() + "-");
                }

                #endregion

                #region 得到后天的天气

                //得到后天的标识跟城市
                int thirdDayAndCityStartIndex = Html.IndexOf("

", secondWindforceEndIndex);
                int thirdDayAndCityEndIndex = Html.IndexOf("

", thirdDayAndCityStartIndex);
                string thirdDayAndCity = Html.Substring(thirdDayAndCityStartIndex + 4, thirdDayAndCityEndIndex - thirdDayAndCityStartIndex - 4);

                //得到后天的日期跟星期
                int thirdDateStartIndex = Html.IndexOf("

", thirdDayAndCityEndIndex);
                int thirdDateEndIndex = Html.IndexOf("

", thirdDateStartIndex);
                string ThirdDate = Html.Substring(thirdDateStartIndex + 3, thirdDateEndIndex - thirdDateStartIndex - 3).Replace(" ", ",");

                //得到后天的天气
                int thirdWeatherStartIndex = Html.IndexOf("

", thirdDateEndIndex);
                int thirdWeatherEndIndex = Html.IndexOf(" ", thirdWeatherStartIndex + 24);
                string ThirdWeather = Html.Substring(thirdWeatherStartIndex + 24, thirdWeatherEndIndex - thirdWeatherStartIndex - 24);

                //得到后天的温度

                int thirdTemperatureStartIndex = thirdWeatherEndIndex + 1;
                int thirdTemperatureEndIndex = Html.IndexOf("

", thirdTemperatureStartIndex);
                string ThirdTemperature = Html.Substring(thirdTemperatureStartIndex, thirdTemperatureEndIndex - thirdTemperatureStartIndex);
                int int7 = ThirdTemperature.IndexOf("℃", 0);
                int int8 = ThirdTemperature.IndexOf("~", 0);
                int int9 = ThirdTemperature.IndexOf("℃", int2);
                string ThirdMinTemperature = ThirdTemperature.Substring(int8 + 1, int9 - int8);
                string ThirdMaxTemperature = ThirdTemperature.Substring(0, int8 - int7 + 2);

                //得到后天的风力
                int thirdWindforceStartIndex = Html.IndexOf("风力:", thirdTemperatureEndIndex);
                int thirdWindforceEndIndex = Html.IndexOf("

  • 1.

特殊说明,使用第三种方法获取天气预报,输入城市的时候可能会受新浪提供的服务的影响,可能有些城市搜不到,前两种方法应该是不会受影响的。另外,由于代码写的比较急,所以难免代码的质量就会有些问题,还请大家多多包涵。单纯从代码上看,可能确实没有什么难度,可是如果在您的工作中如果因为我的代码为您节省了一些时间,笔者深感欣慰了。

另外,由于我的开发环境是VS2008+sp1,如果您的vs版本较低,不妨把项目文件删除掉,然后打开您的VS,选择打开网站,然后定位到本程序的目录,这样就可以进行代码的编译跟踪调试了。
 
再补充一点,有人可能对代码中出现的:System.Environment.NewLine 这句代码比较迷糊,因为这个是.NET提供的简单的换行方法,我推荐大家以后能够使用这种.net提供给大家的高效、简便的方法。最关键的是它不容易出错。
 
责任编辑:彭凡 来源: cnblogs
相关推荐

2016-03-14 10:29:38

天气预报各类工具源码

2013-03-26 13:20:27

Android天气预报

2009-07-28 09:45:34

Webpart部署方式使用ASP.NET

2010-08-13 10:56:58

FlexWebservice

2017-08-01 10:10:32

人工智能智能天气预报

2009-07-07 09:25:08

Linux开发FOSS开发项目

2009-12-02 15:45:04

PHP抓取天气预报

2022-02-21 11:02:54

5G通信网络天气预报

2012-06-04 09:36:50

2009-08-25 17:42:41

ASP.NET新手问题

2018-01-29 11:25:37

LinuxASCII 字符天气预报

2020-02-11 20:00:29

开源开源工具天气预报

2009-08-17 09:24:25

ASP.NET控件

2009-08-05 11:00:46

获得RowIndexASP.NET

2012-07-16 13:36:54

交换机数据中心核心交换机气象卫星

2013-04-10 17:59:50

微信公众平台接口开发

2009-07-28 17:41:54

ASP.NET工具

2009-07-29 16:31:39

ASP.NET安装部署

2009-07-22 17:45:11

ASP.NET插件

2015-10-19 17:16:10

天气预报命令行Linux
点赞
收藏

51CTO技术栈公众号