Come posso ottenere il contenuto della pagina web e salvarlo nella variabile stringa

Come posso ottenere il contenuto della pagina Web usando ASP.NET? Ho bisogno di scrivere un programma per ottenere l’HTML di una pagina web e memorizzarlo in una variabile stringa.

È ansible utilizzare WebClient

WebClient client = new WebClient(); string downloadString = client.DownloadString("http://www.gooogle.com"); 

Ho riscontrato problemi con Webclient.Downloadstring in precedenza. Se lo fai, puoi provare questo:

 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(); } 

Raccomando di non utilizzare WebClient.DownloadString . Questo perché (almeno in .NET 3.5) DownloadString non è abbastanza intelligente da utilizzare / rimuovere la distinta base, qualora fosse presente. Ciò può causare il BOM (  ) che appare erroneamente come parte della stringa quando vengono restituiti dati UTF-8 (almeno senza un set di caratteri) – ick!

Invece, questa leggera variazione funzionerà correttamente con le BOM:

 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(); } } 
 Webclient client = new Webclient(); string content = client.DownloadString(url); 

Passa l’URL della pagina che vuoi ottenere. Puoi analizzare il risultato usando htmlagilitypack.