Как я могу получить содержимое веб-страницы с помощью 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.