Как я могу получить содержимое веб-страницы и сохранить ее в строковой переменной

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

Ответ 1

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

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

Ответ 2

У меня возникли проблемы с 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();
}

Ответ 3

Я не рекомендую использовать 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();
    }
}

Ответ 4

Webclient client = new Webclient();
string content = client.DownloadString(url);

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