在抓取网站页面以获取数据时出现403错误

时间:2014-09-05 08:22:11

标签: c# asp.net-mvc-3 web-scraping

我有一个价格比较网站,它从各个网站上搜索价格。对于所有网站,代码工作正常,但一个返回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;
        }
    }

解决方法是什么?如何继续废弃网站?

2 个答案:

答案 0 :(得分:0)

这可能是该网站实施的一项刮擦对策。

尝试尽可能地模仿浏览器请求(特别是标题 - 用户代理,引用,内容类型等)。

答案 1 :(得分:0)

403 Forbidden 实际上服务器在理解服务器拒绝您的请求的同时理解并接受您的请求,因此请检查您的HttpRequest标头和Cookie值

你可以使用像fiddler http://www.telerik.com/fiddler/web-debugging这样的网页调试工具 调试请求和响应