Hallo
Ich versuche mit einer kleinen Applikation den HTML-Code von Webseiten auszulesen. Habe dazu folgendes geschrieben.
public string url;
public string gethtml()
{
WebClient webclient = new WebClient();
webclient.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0";
string htmlcode = webclient.DownloadString(url);
return htmlcode;
}
Nun habe ich jedoch das Problem, dass im angezeigten HTML-Code jeweils die Javascripts noch nicht ausgeführt wurde und dadurch einige Elemente fehlen. Gibt es eine Möglichkeit die url so aufzurufen, wie es ein Browser machen würde und erst dann den Quellcode runterzulanden?
Grüsse
Roland
Wie in der Dokumentation einwandfrei zu lesen ist, sind webClient und webRequest nur Klassen, die das HTTP Protokoll unterstützen und keinen DOM manipulieren.
Brauchst Du sowas, dann musst Du Dir eine externe Bibliothek suchen, die das unterstützt oder - je nach Deiner Technologie - auch den in C# vorhandenen WebBrowser nutzen.
Verwendet man Google (zu erreichen über www.google.de) und führt eine simple Suche nach "webrequest javascript c#" oder "webclient javascript c#" aus, bekommt man das ganze auch auf den Präsentierteller gelegt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Nein, über Google habe ich leider die entsprechenden Informationen nicht erhalten. Entschuldige meine Frage auf diesem tiefen Niveau und meine Unwissenheit zur Programmiersprache. Leider wurde mir das Wissen nicht mit dem Löffel eingetrichtert. Ein bischen weniger arrogant wäre doch manchmal auch schön.
Grüsse
Roland
@vbprogger
Danke für den sinnvollen Beitrag. Aber wie geschrieben, Google kenne ich und habe ich auch benutzt.
Sorry aber mehr können wir dir hier nicht anbieten, denn ich sehe keine konkrete Probleme. Such dir also irgendeinen Tipp aus der Google-Suche raus, versuche umzusetzen, wenn du dann Probleme dabei hast dann kannst du wieder unter Beachtung der Regel [Hinweis] Wie poste ich richtig? deine Fragen stellen.
Grüße
**:::
Andere Moeglichkeit ist mit COM Interop auf den IE zurueckzugreifen - es gibt viele Moeglichkeiten, was Du machen kannst...
Andere Moeglichkeit ist mit COM Interop auf den IE zurueckzugreifen
Oder einfach das WebBrowser-Control verwenden.