【问题标题】:Html Agility Pack vs. 302 redirects to same pageHtml Agility Pack 与 302 重定向到同一页面
【发布时间】:2015-11-24 10:58:16
【问题描述】:

我正在尝试从位于 108.170.59.213 的旧 http://www.printprint.ca 站点获取元标记(我的主机文件中有此),但似乎无法在 DocumentNode 中获取任何内容。 旧网站似乎 302 重定向到同一页面,它破坏了 Xenu、ScreamingFrog、BeamUsUp 等所有爬虫。 在初始 302 到同一页面后,它以 200 响应,但我不知道如何让 HtmlAgilityPack 接受这一点。 我试过添加这个:

web.PreRequest = OnPreRequest;

private static bool OnPreRequest(HttpWebRequest request)
    {
        request.AllowAutoRedirect = true;
        return true;
    }

【问题讨论】:

    标签: redirect html-agility-pack http-status-code-302


    【解决方案1】:

    我知道这个老了。但由于没有答案,我可能会输入我的解决方案。

    public static void Main(string[] args)
    {
        HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.printprint.ca ");
            request.Method = "GET";
            request.ContentType = "text/html;charset=utf-8";
    
            using (var response = (HttpWebResponse)request.GetResponse())
            {
    
                using (var stream = response.GetResponseStream())
                {
                    doc.Load(stream, Encoding.GetEncoding("utf-8"));
                }
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine(ex.Message);
        }
        HtmlNodeCollection metas = doc.DocumentNode.SelectNodes(".//meta");
        foreach(HtmlNode meta in metas)
        {
            Console.WriteLine(meta.OuterHtml);
            Console.WriteLine();
        }
        Console.ReadKey();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-25
      • 2014-08-31
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多