2014-09-05 63 views
0

我有一个价格比较网站,从各个网站刮取价格。对于所有网站的代码工作正常,但一个是返回403禁止错误。该网站是在Asp.net MVC3框架中开发的。以下是我的代码。获取403错误,同时抓取一个网站页面的数据

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; 
     } 
    } 

什么是解决方法,我该如何继续报废网站?

回答

0

这很可能是由网站实施的一种刮擦对策。

尝试尽可能紧密模拟天生浏览器请求越好(特别是头 - 用户代理,引用者,内容类型等)

+0

我是不是S如何做到这一点...我使用问题中陈述的代码,它处理所有事情 – 2014-09-06 07:53:16

0

403禁止 其实服务器是理解和接受你在同一时间要求该服务器拒绝你的要求,那么请检查您的HttpRequest页眉和cookie值

您可以使用网络调试工具,如提琴手http://www.telerik.com/fiddler/web-debugging 调试请求和响应