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


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

4 67

4 ответа:

можно использовать WebClient

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

я столкнулся с проблемами с 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();
}

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

вместо этого, это небольшое изменение будет работать правильно с BOMs:

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

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