爬虫发起抓取被服务器拒绝访问返回403禁止访问解决方案
2017-09-13 14:22
1031 查看
现在很多网站的api接口返回httpcode返回码是403提示禁止访问。如果您也遇到这样的情况,请先不要急着去修改网站相关的参数
第一、先进api的网站。用浏览器访问,如果浏览器访问该api接口能成功。说明是设置了权限的问题。如果不能成功的话。很可以是该接口已修改或已失效,这时候就没办法访问了。
第二、如果浏览器能访问成功的话。那就好办了。调用该接口时,捕获异常中的responseBody,很有可能数据就在这里面,笔者就遇到的是这种问题。
直接上代码:
第一、先进api的网站。用浏览器访问,如果浏览器访问该api接口能成功。说明是设置了权限的问题。如果不能成功的话。很可以是该接口已修改或已失效,这时候就没办法访问了。
第二、如果浏览器能访问成功的话。那就好办了。调用该接口时,捕获异常中的responseBody,很有可能数据就在这里面,笔者就遇到的是这种问题。
直接上代码:
try { //这里调用api接口 } catch (WebException ex) { var strm = ex.Response.GetResponseStream(); strm.Position = 0; StreamReader reader = new StreamReader(strm); string error = reader.ReadToEnd(); //这里看error里面的值是否有你想要的值 if (!string.IsNullOrWhiteSpace(error)) { var result = JsonConvert.DeserializeObject<JObject>(error)["result"]["results"]; if (result == null) return null; var customer = JsonConvert.DeserializeObject<JArray>(result.ToString()); if (customer == null) return null; List<InvTitle> list = new List<InvTitle>(); foreach (var item in customer) { InvTitle mc = new InvTitle() { Name = item["entName"] != null ? item["entName"].ToString() : "", TaxCode = item["credCode"] != null ? item["credCode"].ToString() : "", State = "y", CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; list.Add(mc); if (list.Count == 4) break; } return list; } return null; }
相关文章推荐
- [置顶] 打开II6服务器 403禁止访问访问被拒绝您无权使用所提供的凭据查看此目录或页面
- IIS7中发布网站到公网技巧与排错--服务器错误 403-禁止访问:访问本拒绝。
- C# WebRequest 远程服务器返回错误: (403) 已禁止
- MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝。
- ASP.NET HttpWebResponse 远程服务器返回错误: (403) 已禁止
- ObRegisterCallbacks返回0xC0000022(拒绝访问)解决方案
- 通过设置代理,解决服务器禁止抓取,报“java.io.IOException: Server returned HTTP response code: 403 for URL”错误的方法
- winSCP:无权访问。 错误码:3 服务器返回的错误消息:Permission denied(真正解决方案)
- 解决:java 抓取网站内容---403(禁止访问代号)
- MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝。
- MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝。
- WebClient 访问间歇性返回403解决方案
- 爬虫遇到图片禁止访问(如403)
- IIS7下打开文件出现 403 - 禁止访问:访问被拒绝
- WebClient 访问间歇性返回403解决方案
- HttpWebResponse 远程服务器返回错误: (403) 已禁止
- IIS7 MVC 403 禁止访问:访问被拒绝
- 远程服务器返回错误: (403) 已禁止。
- 局域网中禁止客户端用户直接访问服务器共享文件夹的简单解决方案