c#采集图片时出现403 Forbidden提示
程序员文章站
2022-06-29 07:59:00
今天在下载一个网站的图片时,提示403 Forbidden,对方服务器是使用了https证书的。
我是用的WebClient去...
今天在下载一个网站的图片时,提示403 Forbidden,对方服务器是使用了https证书的。
我是用的WebClient去下载的,当时写的代码就是简单的声明和下载
WebClient client = new WebClient(); var result = client.DownloadData(url);
网上翻找了一些资料,
说得比较多的是要用HttpWebRequest去获取,但是我尝试了没有成功。
这种情况明显就是图片远程服务器端做了处理,防止盗用图片,我单独用浏览器访问图片地址时,多次刷新后浏览器也会有相同提示。
这种一般思路是f12查看network情况,模拟浏览器访问。 研究后大致有如下问题,
wc的证书凭证设置
user-agent设置
referer设置
host设置
最后的代码如下
WebClient client = new WebClient(); client.Credentials = CredentialCache.DefaultCredentials; client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"); client.Headers.Add("Host", new Uri(url).Host); client.Headers.Add("Referer", refurl); var result = client.DownloadData(url);
到此问题解决。
上一篇: 大数据入门学习之Hadoop技术优缺点
下一篇: python 矩阵增加一行或一列的实例