我有一个比价网站,它从各种网站上抓取价格。对于所有网站,代码运行良好,但其中一个返回403禁止错误。该网站是在Asp.net MVC3框架下开发的。以下是我的代码。
public static decimal? GetSpanFromWebSite(string url, string identification)
{
var baseUrl = new Uri(url);
HtmlAgilityPack.HtmlDocument document = new HtmlDocument();
try
{
WebClient client = new WebClient();
document.Load(client.OpenRead(baseUrl));
var div = document.DocumentNode.SelectNodes(identification).FirstOrDefault();
return Convert.ToDecimal(div.InnerHtml);
}
catch (Exception)
{
return null;
}
}
解决方法是什么?我如何继续报废网站?
这很可能是站点实施的刮擦对策。
尽量模仿浏览器请求(尤其是头-用户代理、refer、内容类型等)
403禁用事实上,服务器在理解和接受您的请求的同时,拒绝了您的请求,所以请检查您的HttpRequest Headers和Cookie值
你可以使用像fiddler这样的web调试工具http://www.telerik.com/fiddler/web-debugging调试请求和响应