欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

用webclient下载网页数据出现有关问题

更新时间: 2014-01-05 02:39:19 责任编辑: Author_N1

 

用WebClient下载网页数据出现问题
我做的一个应用,在用WebClient的OpenReadAsync下载同一个网站(http://china.nba.com/news/)的一些数据时,出现:
1、有些页面一定能下载成功(例如:http://china.nba.com/news/4/2013-05-31/1254/13520.html)
2、有些页面一定下载失败--下载的Stream的Length明显短了,导致最终解析出来都是乱码(例如:http://china.nba.com/news/4/2013-05-30/0210/13498.html)
3、有些页面多试几次有可能成功(例如:http://china.nba.com/news/4/2013-05-31/1700/13523.html)
是在是搞不清出了什么问题,求大神指教?
--参考方法--
Accept: text/html, application/xhtml+xml, */*
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
把这些请求头捎带上
--参考方法--
貌似是 网页压缩的问题,页面采用了gzip压缩传输,我也遇到了类似的问题,不过我要的页面采用deflate压缩,找了两天办法了最后找到了解决楼主gzip解压的办法,自己deflate的暂时还没找到。下面是方法,亲测能完美输出并且一并解决中文乱码的编码问题
引用两个dll库  SharpGIS.GZipWebClient 和 HtmlAgilityPack(HtmlAgilityPack要用1.0.0的)
WebClient modelClient = new SharpGIS.GZipWebClient();
            modelClient.Encoding = new HtmlAgilityPack.Gb2312Encoding(); //加入这句设定编码
            modelClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient1_DownloadStringCompleted);
            modelClient.DownloadStringAsync(new Uri("http://china.nba.com/news/4/2013-05-31/1254/13520.html"));
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:39:19
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12726/
本文WWW.DOC100.NET DOC100.NET版权所有。