先调用  这个 http://www.weather.com.cn/data/cityinfo/101200101.html
  然后 返回 数据 ,最好用 alert 循环 弹出 值要完整的 代码, 要能 测试运行的...

解决方案 »

  1.   

    Demo
      

  2.   

    楼主可以调用WEBSERIVE 返回的是XML用JQUERY很好遍历。JSON倒没见过
      

  3.   

    代码已经经过测试,简单的用了WebBrowser控件:
            private void Form1_Load(object sender, EventArgs e)
            {
                string url = "http://www.weather.com.cn/data/cityinfo/101200101.html";            webBrowser1.Navigate(url);
            }        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                //避免webbroswer.DocumentCompleted被多次引发
                if ((e.Url != webBrowser1.Url) || (webBrowser1.ReadyState != WebBrowserReadyState.Complete))
                    return;
                //下面写你要在页面加载完毕后执行的代码。            string result = webBrowser1.Document.Body.InnerText;
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(weatherinfoClass));            weatherinfoClass info = null;
                using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(result))) 
                {
                    info = serializer.ReadObject(ms) as weatherinfoClass;
                } 
            [DataContract]
            class weatherinfoClass
            {
                [DataMember]
                public weatherinfo weatherinfo { get; set; }
            }
            [DataContract]
            class weatherinfo
            {
                [DataMember] 
                public string city { get; set; }
                [DataMember] 
                public string cityid { get; set; }
                [DataMember] 
                public string temp1 { get; set; }
                [DataMember] 
                public string temp2 { get; set; }
                [DataMember] 
                public string weather { get; set; }
                [DataMember] 
                public string img1 { get; set; }
                [DataMember] 
                public string img2 { get; set; }
                [DataMember] 
                public string ptime { get; set; }
            }
      

  4.   

    回复1楼:这个源码不错很详细,
    回复2楼:下载不了,要登录,
    回复3楼:webseriver用起来不方便,还要配置一个服务器,
    回复4楼:你那个是winfrom 版的, 我做的是web 版的开发,不过还是谢谢 给的代码,可以参考问题解决了,    另外问一下这 个 小问题(Bug),  
      <script type="text/javascript">      var xmlhttp;
          // 创建XMLHTTPRequest对象   
          function createXMLHTTPRequest() {
              if (window.ActiveXObject)//②如果当前浏览器为IE   
              {
                  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
              }
              else if (window.XMLHttpRequest)//③如果是其他浏览器   
              {
                  xmlhttp = new XMLHttpRequest();
              }
          }      function getInfo() {
              createXMLHTTPRequest();
              xmlhttp.open("GET", "http://www.weather.com.cn/data/cityinfo/101200101.html", true);
              xmlhttp.onreadystatechange = returnInfo;
              xmlhttp.send(null);
          }
    红色的圈起来的地方  报错:没有权限,   有没有 知道是什么 原因的啊,代码我是在别的网站上Copy的
      

  5.   

    那你为什么不用ajax请求一个ashx,然后在ashx里面用webrequest类下载最新页面,然后利用正则表达获取出相应对数据,包装成json,返回前台页面呢?
      

  6.   


    XMLHttpRequest不能跨域的,因为安全问题。可以写个aspx,在aspx的code behind class中的Page_load中从www.weather.com.cn取得数据,并Response。
    javascript从新的本网站的aspx中取得数据。
      

  7.   

    ...jsonp,获取到数据然后遍历json不久行了?