解决C#下抓取网页源代码的时候报“远程服务器返回错误: (403) 已禁止”的错误

今天在用C# + HttpWebRequest抓人家网页源代码的时候,发现一直报错,返回“远程服务器返回错误: (403) 已禁止”的错误,于是检查了几次代码,都没有看出哪里有错误。开始以为是因为对方的服务器做了限制,可以识别到不是本站的访问,所以直接拒绝抓取,结果百度后发现原来问题是因为UserAgent没有设置。


下面我们直接看看源代码:

string html = string.Empty;
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.OK)
{
using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")))
{
html = sr.ReadToEnd();
response.Close();
}
}
else
{
//失败
}

上面的代码在运行到这句:HttpWebResponse response = request.GetResponse() as HttpWebResponse;

就会报异常


百度后发现有大神说,如果报这个异常的话,是因为没有给HttpWebRequest设置UserAgent,于是我赶紧加了一句:request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.9.0.2800 Chrome/39.0.2146.0 Safari/537.36";


加上这句代码后马上就正常了。大家可以收藏一下这个文章,说不定以后你们也用得上~

  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号