HI alle, dieser ist wirklich einfach (ich hoffe). Ich benutze htmlagility pack, um mein Webcrawling zu machen. Was passiert also, wenn ich URLs eingeben muss, die mich dann zu einer neuen URL leiten? Wie erfasse ich diese neue umgeleitete URL?
Wenn htmlagility pack keinen Weg hat, kann jemand eine andere Methode vorschlagen?
Wenn Sie Ihre HttpWebRequest erstellen, können Sie die AllowAutoRedirect
Eigenschaft auf "true" setzen und allen Weiterleitungen automatisch folgen.
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest.MaximumAutomaticRedirections=1;
myHttpWebRequest.AllowAutoRedirect=true;
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
Sie können mehr Informationen bei msdn finden
Mit der HtmlWeb-Klasse, die mit dem Html Agility Pack geliefert wird, können Sie die Anfrage optimieren, bevor sie tatsächlich ausgeführt wird, wie folgt:
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;
}