Ich versuche, den Inhalt einer Website herunterzuladen. Für eine bestimmte Webseite enthält die zurückgegebene Zeichenfolge jedoch durcheinandergewürfelte Daten, die viele Zeichen enthalten.
Hier ist der Code, den ich ursprünglich verwendet habe.
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(source);
Ich habe auch alternative Implementierungen mit WebClient versucht, aber immer noch das gleiche Ergebnis:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
using (WebClient client = new WebClient())
using (var read = client.OpenRead(url))
{
doc.Load(read, true);
}
Nach der Suche vermute ich, dass es sich um ein Problem mit der Kodierung handeln könnte, also habe ich beide unten aufgeführten Lösungen ausprobiert, aber ich kann sie immer noch nicht zum Laufen bringen.
- http://blogs.msdn.com/b/feroze_daud/archive/2004/03/30/104440.aspx
- http://bytes.com/topic/c-sharp/answers/653250-webclient-encoding
Die beanstandete Seite, die ich anscheinend nicht herunterladen kann, ist der Artikel Vereinigte_Staaten in der englischen Version von WikiPedia (de . wikipedia . org / wiki / Vereinigte_Staaten). Ich habe allerdings auch eine Reihe anderer Wikipedia-Artikel ausprobiert, bei denen dieses Problem nicht aufgetreten ist.