日期:2014-05-17  浏览次数:20396 次

用WebRequest抓取网页,为什么有些网页读不到
C# code

            string http = "http://www.baidu.com";
            System.Net.WebRequest request = System.Net.WebRequest.Create(http);
            System.IO.StreamReader sr = new System.IO.StreamReader(request.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));




我想抓取一个网页,同一个网址,在浏览器里输是有值的,用上面这段代码却无返回值,但用上面这代码搜百度是有值的
这是为什么?是不是那网站用了什么技术屏蔽抓取,怎么解决?

------解决方案--------------------
这方面我刚学习 昨天看到一篇 不知道是否满足你的需求
http://www.cnblogs.com/lixiaofei/archive/2012/02/16/2353795.html
------解决方案--------------------
WebRequest自动将"梦江南/如梦令/枫泾古镇"中的"/"进行了编码,请求地址变了
如果"/"是传的值,理应进行编码,要不与目录容易搞混
------解决方案--------------------
编码在不同的站有所不同吧。。试试其他的Default utf8什么的看看
------解决方案--------------------
可能是编码问题 ,还有要伪造请求头 ,有些网站做了判断 。防止别人来抓 。
我有次去抓 返回值是 “不欢迎您的访问 ”。