Wie bekomme ich die HTML-Quelle eine Web-Adresse in C# gegeben?Wie kann ich HTML-Quelle in C# herunterladen
Antwort
Sie Dateien herunterladen können mit dem WebClient class:
using System.Net;
//...
using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
{
client.DownloadFile("http://yoursite.com/page.html", @"C:\localfile.html");
// Or you can get the file content without saving it:
string htmlCode = client.DownloadString("http://yoursite.com/page.html");
//...
}
im Grunde:
using System.Net;
using System.Net.Http; // in LINQPad, also add a reference to System.Net.Http.dll
WebRequest req = HttpWebRequest.Create("http://google.com");
req.Method = "GET";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
Console.WriteLine(source);
"cms" Art und Weise die jüngere ist, vorgeschlagen, in ms Website
aber ich hatte ein Problem schwer zu lösen, Breite beide Methoden hier gepostet
jetzt ich post solu für alle!
Problem: , wenn Sie eine URL wie folgt verwenden: "www.somesite.it/?p=1500" in einigen Fällen erhalten Sie einen internen Serverfehler (500) obwohl in Webbrowser dieses „www. somesite.it/?p=1500 "perfekt funktionieren.
Lösung: Sie müssen Parameter ausrücken (ja ist leicht), Arbeitscode ist:
using System.Net;
//...
using (WebClient client = new WebClient())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}
hier offizielle Dokumentation: http://msdn.microsoft.com/en-us/library/system.net.webclient.querystring.aspx
Sie können es mit bekommen:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Kurz und gut! Ich habe Ihren Vorschlag gefunden, nachdem ich Joe Albaharis Beispiel gelesen habe. LINQPad> Hilfe> Neue Funktionen und suchen Sie nach Cache. – Colin
var html = neuer System.Net.WebClient(). DownloadString (siteUrl); // Müssen Sie Ihren Kunden neu aufbauen! – user1328350
Wird der 'WebClient'' disponiert? –
Dieser Beitrag ist wirklich alt (es ist 7 Jahre alt, wenn ich bin (Antwort), so dass keine der anderen Lösungen den neuen und empfohlenen Weg verwendet, der HttpClient
Klasse ist.
HttpClient
wird neuer API betrachtet und es sollte die alten WebClient
und WebRequest
string url = "page url";
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
string result = content.ReadAsStringAsync().Result;
}
}
}
Weitere Informationen zu ersetzen, wie die HttpClient
Klasse zu verwenden (vor allem in Asynchron-Fällen), können Sie verweisen this question
- 1. Wie kann ich Dateien herunterladen
- 2. Wie kann ich eine XML-Datei mit C# herunterladen?
- 3. Wo kann ich RE2 herunterladen?
- 4. Wie kann ich Bilder mit Nutch herunterladen?
- 5. Wie kann ich hochgeladene Dateien herunterladen?
- 6. Wie kann ich db von heroku herunterladen?
- 7. Wie kann ich Daten herunterladen und anzeigen?
- 8. Wo kann ich XAMLPad herunterladen?
- 9. Wo kann ich JOGL herunterladen?
- 10. Codova, kann ich eine Datei herunterladen (root)/Ordner herunterladen?
- 11. Wie kann ich eine Datei in php erstellen und herunterladen
- 12. Wie kann ich neue Inhalte in ein HTML-Skript herunterladen?
- 13. Wie kann ich eine Zahl in Excel konvertieren "datatables.js" herunterladen
- 14. Wie kann ich eine HttpResponse in eine Datei herunterladen?
- 15. Wie kann ich Text aus dem Web in iOS herunterladen?
- 16. Wie kann ich eine Webseite mit Abhängigkeiten in Java herunterladen?
- 17. herunterladen Option in C# -Code
- 18. herunterladen JSON String in C#
- 19. Datei mit libcurl in C/C++ herunterladen
- 20. Wie kann ich Inhalte wie PDF oder Bilder herunterladen?
- 21. Wie kann ich eine Datei über das OnClick-Ereignis einer Schaltfläche in C# herunterladen?
- 22. IE Informationsleiste, Datei herunterladen ... Wie kann ich das programmieren?
- 23. Wo kann ich mysql jdbc jar herunterladen?
- 24. Wie msdn-Bibliothek für C++ herunterladen
- 25. Wo kann ich Visual Foxpro herunterladen? MSDN?
- 26. Kann ich ein Lazy-Load-Image herunterladen?
- 27. Wo kann ich eine ascmd.exe herunterladen?
- 28. Wo kann ich jQueryMobile Themen herunterladen
- 29. Wo kann ich php5apache2_2.dll herunterladen?
- 30. Wo kann ich Subversion-Binärdateien herunterladen?
Hinweis: Wenn mehr Kontrolle erforderlich ist, sehen Sie sich die HttpWebRequest-Klasse an (z. B. können Sie die Authentifizierung angeben). – Richard
Ja, HttpWebRequest gibt Ihnen mehr Kontrolle, obwohl Sie POST-Anfragen mit WebClient durchführen können, indem Sie client.UploadData (uriString, "POST", postParamsByteArray) verwenden; – CMS
Wäre es nicht klug, WebException darum herum zu fangen? Vielleicht wurde das angenommen. Alle anderen Ausnahmen oder Fehler müssen mit dieser Methode abgefangen werden? –