页面这个页面我抓取后的源码是Forbidden, Please turn off CC,但是浏览器来打开是一个正常的页面,求高手给详细代码,谢谢
解决方案 »
- |ZYCWPF| WPF中窗体如何得到他是由哪个窗体Show出的的呢? 谢谢
- 项目.vdproj文件丢失了
- vs2005 中 datagridview向导方式绑定数据源 会同化数据源吗? 具体是...
- 求超大数的阶乘,比如求800的阶乘!
- C#程序怎样打开不同类型的文件
- 火急:我用vs.net打开一个项目,出现错误打不开.csproj文件,然后我重启计算机后程序文件夹下的所有文件都没有了是怎么回事?怎么恢复数
- 所有分给完再次请高手赐教。HttpWebRequest.Keep-Alive问题
- 求救,安装的奇怪的问题
- 在WebForm中如何点击一个Flash动画实现页面重定向?
- 关于关闭窗口的菜问题.
- 有关Session的问题
- SQL语句这样写对吗
{
string strResult="";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch
{
MessageBox.Show("出错");
}
return strResult;
} 给你找来了。自己传个URL就行了。返回的是整个页面的源代码.至于详细的信息靠你自己来截取 可以用正则可以用INDEXOF SUBSTRING。
Forbidden 等效于 HTTP 状态 403。Forbidden 指示服务器拒绝满足请求
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream resStream = response.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, encoding);
string html = (sr.ReadToEnd());
resStream.Close();
sr.Close();
在HttpWebRequest的实例后面加上这句就OK
实例名.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
实例名.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
代码稍作修改就可以了请求实例.UseDefaultCredentials = true;
请求实例.Headers.Set("User-Agent", "Microsoft Internet Explorer");
string strResult = ""; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 10000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
request.UseDefaultCredentials = true;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; GTB6.5; Foxy/1; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.0.04506.648; CIBA; .NET CLR 3.5.21022; .NET CLR 2.0.50727; msn OptimizedIE8;ENUS)";
request.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/QVOD, application/QVOD, image/png, */*";
request.Headers.Set("Accept-Encoding", "gzip, deflate");
request.Headers.Set("Accept-Language", "zh-cn,en-GB;q=0.5");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd(); return strResult;有谁测试过每次都抓取成功没有?http://www.gzcycling.com/bbs/read.php?tid=49628&page=2