C # htmlagility pack, захват перенаправления - PullRequest
2 голосов
/ 05 июня 2011

Привет всем, это действительно просто (я надеюсь). Я использую пакет htmlagility, чтобы выполнить сканирование в Интернете. Так что же произойдет, если я введу URL-адрес, который затем направит меня на новый URL-адрес, как мне перехватить этот новый перенаправленный URL-адрес?

Если у пакета htmlagility нет способа, может кто-нибудь предложить другой метод?

Ответы [ 2 ]

9 голосов
/ 05 июня 2011

Используя класс HtmlWeb, входящий в комплект Html Agility Pack, вы можете настроить запрос до его фактического выполнения, например:

    HtmlWeb web = new HtmlWeb();
    web.PreRequest = OnPreRequest;
    HtmlDocument doc = web.Load("http://wwwblablahh.com");


private static bool OnPreRequest(HttpWebRequest request)
{
    request.AllowAutoRedirect = true;
    return true;
}
5 голосов
/ 05 июня 2011

Когда вы создаете свой HttpWebRequest, вы можете установить для свойства AllowAutoRedirect значение true, и оно будет автоматически следовать всем вашим перенаправлениям.

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.contoso.com");  
myHttpWebRequest.MaximumAutomaticRedirections=1;
myHttpWebRequest.AllowAutoRedirect=true;
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 

вы можете найти дополнительную информацию в msdn

...