Как я могу получить содержимое веб-страницы и сохранить его в строковую переменную - PullRequest
68 голосов
/ 22 декабря 2010

Как я могу получить содержимое веб-страницы, используя ASP.NET? Мне нужно написать программу, чтобы получить HTML-код веб-страницы и сохранить его в строковой переменной.

Ответы [ 4 ]

107 голосов
/ 22 декабря 2010

Вы можете использовать WebClient

WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.gooogle.com");
70 голосов
/ 22 декабря 2010

У меня раньше были проблемы с Webclient.Downloadstring.Если вы это сделаете, вы можете попробовать это:

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();
}
23 голосов
/ 04 мая 2013

Я рекомендую , а не , используя WebClient.DownloadString.Это связано с тем, что (по крайней мере, в .NET 3.5) DownloadString недостаточно умен, чтобы использовать / удалять спецификацию, если она присутствует. Это может привести к спецификации () неправильно отображается как часть строки при возврате данных UTF-8 (по крайней мере, без кодировки) - ick!

Вместо этого это небольшое изменение будет корректно работать с спецификациями:

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();
    }
}
9 голосов
/ 22 декабря 2010
Webclient client = new Webclient();
string content = client.DownloadString(url);

Передайте URL страницы, которую вы хотите получить. Вы можете проанализировать результат, используя htmlagilitypack.

...