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.
c#
asp.net
screen-scraping
kamiar3001
quelle
quelle
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(); }
quelle
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(); } }
quelle
Webclient client = new Webclient(); string content = client.DownloadString(url);
Übergeben Sie die URL der Seite, die Sie erhalten möchten. Sie können das Ergebnis mit htmlagilitypack analysieren.
quelle