问题描述
我正在尝试从网站下载HTML并进行解析。我实际上只对头部的OpenGraph数据感兴趣。对于大多数使用WebClient的站点,HttpClient或HtmlAgilityPack均可使用,但某些域却显示403,例如:westelm.com
我尝试将标头设置为与使用浏览器时的标头完全相同,但仍然得到403。这是一些代码:
string url = "https://www.westelm.com/m/products/brushed-herringbone-throw-t5792/?";
var doc = new HtmlDocument();
using(WebClient client = new WebClient()) {
client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.102 Safari/537.36";
client.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
client.Headers["Accept-Encoding"] = "gzip,deflate,br";
client.Headers["Accept-Language"] = "en-US,en;q=0.9";
doc.Load(client.OpenRead(url));
}
这时我得到了403。
我是否缺少某些信息,或者网站管理员正在保护网站免受API请求的侵害?
我该如何进行这项工作?是否有更好的方法从站点获取OpenGraph数据?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)