3

Quelltext einer Webseite mit C# auslesen

Mit dem folgenden kleinen Snippet könnt ihr den Quelltext einer Webseite auslesen und in einem string speichern.
Solch eine Funktion eignet sich zum Beispiel, wenn man einzelne Informationen aus einer Webseite parsen und anderweitig benutzen will.

Damit das Snippet funktioniert, müsst ihr eurem Quelltext folgende beide Using-Direktiven hinzufügen.

using System.Net;
using System.IO;

//Snippet von www.code-bude.net

Die Funktion zum Download des Quelltextes sieht dann wie folgt aus:

public string getHTML(string url)
{
 //Anfrage an die Übergebene URL starten
 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

 //Antwort-Objekt erstellen
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 //Antwort Stream an Streamreader übergeben
 StreamReader sr = new StreamReader(response.GetResponseStream());

 //Antwort (HTML Code) auslesen
 string html = sr.ReadToEnd();

 //Streamreader und Webanfrage schließen
 sr.Close();
 response.Close();

 //Quellcode zurückgeben
 return html;
}

//Snippet von www.code-bude.net

Ein Aufruf der Funktion könnte zum Beispiel so aussehen:

getHTML("http://www.code-bude.net");

//Snippet von www.code-bude.net

Solltet ihr Verbesserungsvorschläge oder sogar Probleme mit dem Snippet haben, schreibt mir einen Kommentar.

Viele Grüße,
Raffi

Über den Autor: Dieser Artikel, sowie 161 andere Artikel auf code-bude.net, wurden von Raffi geschrieben. – Seit 2011 blogge ich hier über Programmierung, meine Software, schreibe Tutorials und versuche mein Wissen, so gut es geht, mit meinen Lesern zu teilen. Zudem schreibe ich auf derwirtschaftsinformatiker.de über Themen meines Studiums.  //    •  • Facebook  • Twitter


  1. Simon sagt:

    Vielen Dank, genau das hab ich gebraucht.
    Und gut erklärt, super!

  2. Raffi sagt:

    Hallo Danny,

    danke für die Anmerkung. Den Webclient kenne ich auch. Du hast Recht, in diesem Falle hätte der Webclient auch gereicht. Im Endeffekt ist er ja auch nur ein Wrapper um HttpWebWebrequest. Ich hatte im Hinterkopf einfach nur die vielfältigeren Erweiterungsmöglichkeiten der Klasse, die einem mit dem HttpWebRequest zur Verfügung stehen.

    Viele Grüße,
    Raffi

  3. Danny sagt:

    Etwas kürzer gehts auch mit dem Webclient:

    WebClient webClient = new WebClient();
    string quelltext = webClient.DownloadString(“http://code-bude.net”);

Buffer