我用WebClient将下列链接的内容拉下来,发现拉下来的HTML源码和用IE打开的源码不一样?请问高手这是什么原因?这个页面中也没有frame之类的。
http://searchdns.netcraft.com/?restriction=site+ends+with&host=.sina.com.cn&lookup=wait..&position=limited

解决方案 »

  1.   

    你送出的HTTP头肯定和IE的不一样。
    网站肯定自动识别浏览器类型的,识别出来的浏览器类型和IE不一样,网页的内容就会有些区别。
      

  2.   

    引用:
     回复人:zhuan() ( 一级(初级)) 信誉:100  2006-05-08 13:51:00  得分:0

    你送出的HTTP头肯定和IE的不一样。
    网站肯定自动识别浏览器类型的,识别出来的浏览器类型和IE不一样,网页的内容就会有些区别。应该是这个原因!
      

  3.   

    WebClient myWebClient = new WebClient();
                // Download home page data.
                myWebClient.Headers["User-Agent"] =  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
                myWebClient.Headers["Accept-Encoding"] =  "gzip, deflate";
                // Download the Web resource and save it into a data buffer.
                byte[] myDataBuffer = myWebClient.DownloadData("http://searchdns.netcraft.com/?restriction=site+ends+with&host=.sina.com.cn&lookup=wait..&position=limited");            // Display the downloaded data.
                string download = Encoding.ASCII.GetString(myDataBuffer);测试通过!
    方法:你先用Fiddler(一个网页请求截取工具)抓到从IE发送的这个页面。看看里面的Headers ,然后WebClient的Headers设置得一模一样就OK了
      

  4.   

    呵呵,我开始是想用Fidder的,不过在公司是通过Http代理上网,使用Fiddler又主动将我的代理变掉了,我在Fiddler中设置上网的代理也不行。
    不过我后来用xmlhttp暂时解决了这个问题。thanks 楼上!