Wie kann ich den Inhalt der Webseite mit ASP.NET abrufen? Ich muss ein Programm schreiben, um den HTML-Code einer Webseite abzurufen und in einer Zeichenfolgenvariablen zu speichern.
Wie kann ich den Inhalt der Webseite mit ASP.NET abrufen? Ich muss ein Programm schreiben, um den HTML-Code einer Webseite abzurufen und in einer Zeichenfolgenvariablen zu speichern.
Antworten:
Sie können den WebClient verwenden
WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.gooogle.com");
Ich habe zuvor Probleme mit Webclient.Downloadstring gehabt. Wenn Sie dies tun, können Sie Folgendes versuchen:
WebRequest request = WebRequest.Create("http://www.google.com");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
Ich empfehle nicht zu verwenden WebClient.DownloadString
. Dies liegt daran, dass (zumindest in .NET 3.5) DownloadString nicht intelligent genug ist, um die Stückliste zu verwenden / zu entfernen, falls sie vorhanden sein sollte. Dies kann dazu führen, dass die Stückliste ( 
) fälschlicherweise als Teil der Zeichenfolge angezeigt wird, wenn UTF-8-Daten zurückgegeben werden (zumindest ohne Zeichensatz) - ick!
Stattdessen funktioniert diese geringfügige Abweichung bei Stücklisten ordnungsgemäß:
string ReadTextFromUrl(string url) {
// WebClient is still convenient
// Assume UTF8, but detect BOM - could also honor response charset I suppose
using (var client = new WebClient())
using (var stream = client.OpenRead(url))
using (var textReader = new StreamReader(stream, Encoding.UTF8, true)) {
return textReader.ReadToEnd();
}
}