Come posso ottenere la sorgente HTML con un indirizzo Web in C#?Come scaricare l'origine HTML in C#
risposta
È possibile scaricare file con il 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");
//...
}
fondamentalmente:
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);
modo "CMS" è il più recente, suggerito nel sito ms
ma ho avuto un problema difficile da risolvere, larghezza entrambi i metodi pubblicati qui
ora post solu per tutti!
problema: se si utilizza un URL come questo: "www.somesite.it/?p=1500" in alcuni casi si ottiene un errore interno del server (500) anche se in questo browser web "www. somesite.it/?p=1500 "funziona perfettamente.
soluzione: si deve spostare fuori parametri (sì è facile), il codice di lavoro è:
using System.Net;
//...
using (WebClient client = new WebClient())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}
qui documentazione ufficiale: http://msdn.microsoft.com/en-us/library/system.net.webclient.querystring.aspx
si può ottenere con:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Breve e dolce! Ho trovato il tuo suggerimento dopo aver letto l'esempio di Joe Albahari. LINQPad> Guida> Novità e ricerca di cache. – Colin
var html = new System.Net.WebClient(). DownloadString (siteUrl); // bisogno di rinnovare il tuo cliente! – user1328350
Fa 'Dispose' the' WebClient'? –
Questo post è molto vecchio (ho 7 anni quando sono rispondendo), quindi nessuna delle altre soluzioni ha utilizzato il metodo nuovo e consigliato, che è la classe HttpClient
.
HttpClient
è considerato nuove API e dovrebbe sostituire quello vecchio WebClient
e 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;
}
}
}
per ulteriori informazioni su come utilizzare la classe HttpClient
(soprattutto nei casi asincroni), è possibile fare riferimento this question
- 1. Safari aggiungendo .html per scaricare
- 2. Come scaricare un file con WinHTTP in C/C++?
- 3. Come posso scaricare il file zip in C#?
- 4. Come scaricare correttamente un AppDomain usando C#?
- 5. scaricare una stringa JSON in C#
- 6. Come convertire HTML in MarkDown in C#?
- 7. Come scaricare un file da un sito Web in C#
- 8. come scaricare un singolo file con multi-thread in C#
- 9. HTML Minification in C#
- 10. C# conversione pdf in html
- 11. Come scaricare memorystream in un file?
- 12. Impossibile scaricare il file docx utilizzando C#
- 13. Dove scaricare Microsoft Visual C++ 2003 ridistribuibile
- 14. Come posso scaricare un file XML usando C#?
- 15. Come cambiare Gradle scaricare posizione
- 16. Come scaricare usando StackExchange.Redis?
- 17. Come scaricare Microsoft.TeamFoundation.Framework.Common.dll
- 18. Come scaricare conftest.c?
- 19. Converti file PDF in HTML in C#
- 20. come scaricare lazy load
- 21. Come posso dire a PHP di scaricare le eccezioni come testo non elaborato anziché HTML?
- 22. Come scaricare file dall'URL in node.js
- 23. Come scaricare in bash da zippyshare?
- 24. Come scaricare file con servizio in Android?
- 25. scaricare più file come zip in .net
- 26. come scaricare un file in java?
- 27. Come posso scaricare JavaScript vars in IE8?
- 28. Come scaricare un bean in JsonSerializer?
- 29. come scaricare file con servizio in background?
- 30. Come scaricare i file in Magento
Nota: se è necessario un maggiore controllo, consultare la classe HttpWebRequest (ad esempio essere in grado di specificare l'autenticazione). – Richard
Sì, HttpWebRequest offre un maggiore controllo, sebbene sia possibile eseguire richieste POST con WebClient, utilizzando client.UploadData (uriString, "POST", postParamsByteArray); – CMS
Non sarebbe prudente prendere WebException intorno a questo? Forse è stato ipotizzato. Eventuali altre eccezioni o errori devono essere catturati con questo metodo? –