Html Agility Pack与302重定向到同一页面

时间:2015-08-30 06:14:26

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

我试图从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;
    }

1 个答案:

答案 0 :(得分:0)

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

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