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



我有一个比价网站,它从各种网站上抓取价格。对于所有网站,代码运行良好,但其中一个返回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调试请求和响应

相关内容

  • 没有找到相关文章

最新更新