找不到好的方法,如何通过HttpWebRequest获取页面的Encoding。(转)
来源:互联网 发布:时光知味岁月沉香意思 编辑:程序博客网 时间:2024/05/18 01:12
今天在做一个简单的Web爬虫,用.Net的HttpWebRequest获取页面信息,然后通过Regex获取页面上的连接,进行递归爬取,开始对http://blog.sunmast.com(Encoding为UTF-8)进行爬去的时候没有发现任何错误。爬取的东西显示正常,结果对其他一些中文网站(Encoding为GB2312)进行爬去的时候,获得的都为乱码,这也是必然,于是修改代码为:
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.163.com");
req.AllowAutoRedirect = true;
req.MaximumAutomaticRedirections = 3;
req.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Natas.Robot)";
req.KeepAlive = true;
req.Timeout = 4000;
// Get the stream from the returned web response
HttpWebResponse webresponse = null;
try
{
webresponse = (HttpWebResponse) req.GetResponse();
}
catch(System.Net.WebException ex)
{
string message = "error response exception:" + ex.Message;
Console.WriteLine(message);
}
if (webresponse != null)
{
StreamReader stream = new StreamReader
(webresponse.GetResponseStream(), Encoding.GetEncoding("GB2312") );
// TODO...
}
但是,用这样的程序来获取utf-8编码的中文网站,同时又会变成乱码。查看MSDN,看到HttpWebResponse有 ContentEncoding 和 CharacterSet,于是希望根据获得的网页的编码类型来进行StreamReader的编码。于是编码测试,可是却发现测试了很多网站(包括Microsoft,Sina)等,却都无法获取这两个参数,输出的结果均为string.Empty。在Google和Baidu上搜索不到此类问题的解决方案,在CodeProject找到两篇Article,却都是通过HttpWebResponse.ContentEncoding 属性获取页面的编码,可是我获取的为什么都是空字符串?
- 找不到好的方法,如何通过HttpWebRequest获取页面的Encoding。(转)
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理
- HttpWebRequest 获取页面
- HttpWebRequest 获取页面
- HttpWebRequest获取百度的网页
- HttpWebRequest获得某个页面,并填写页面的textbox及点击button的方法
- HttpWebRequest的GetResponse 方法 注意事项
- httpWebRequest保持session的方法
- 获取系统默认的encoding
- HttpWebRequest获取网页html源代码(并自动获取encoding)
- No 16 · 通过Encoding的设置实现页面无乱码
- C#通过WebClient/HttpWebRequest实现http的post/get方法与java对接
- C#通过WebClient/HttpWebRequest实现http的post/get方法与java对接
- 修复.NET中通过HttpWebRequest 中GET 方法丢失Cookie的bug
- 什么是CSS?它的能做些什么?
- javaScript parseInt 方法的运用。
- 详谈调用winpcap驱动写arp多功能工具
- jsp的中文处理解决方法(原创)
- 诗情画意
- 找不到好的方法,如何通过HttpWebRequest获取页面的Encoding。(转)
- 最近的方便面越来越垃圾了。。
- 郁闷
- Exception Management Application Block
- web页通过自写FTP组件上传文件
- 对开发的程序(制作CAB)进行签名,并允许网站中使用
- C++编译器推荐目录
- CRC从原理到实现
- 搜集C/C++编译器