我得到“远程服务器返回一个错误:(403)禁止。”每次我向一个网站提出请求时都会出错。我也尝试了我在浏览器上看到的每一个请求时看到的标题,并且我仍然得到相同的error.What来修复这个错误吗?这是.NET Core 3上的一个控制台应用程序。
var url = "my-url";
var client = new WebClient();
client.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
client.Headers.Add("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var html = client.DownloadString(url);未处理异常。System.Net.WebException:远程服务器返回一个错误:(403)禁止.
发布于 2020-05-16 20:37:38
发生这种情况的原因很可能是由您所针对的站点执行的一些web抓取对策。
为了传递它,您应该尽可能地模拟一个真正的浏览器。这将通过设置必要的头来实现。
client.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml");
client.Headers.Add("Accept-Encoding", "gzip, deflate");
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
client.Headers.Add("Accept-Charset", "ISO-8859-1");以上是浏览器使用的一些基本标题,尝试它们,如果仍然不能工作,我建议继续关注这个方向。
Step2:
使用任何类型的网络代理(如Fiddler )从浏览器访问此网站,并拦截请求中的标头。然后在应用程序中模仿它们。这应该是100%的效果。
https://stackoverflow.com/questions/61835224
复制相似问题