Как я могу получить содержимое веб-страницы и сохранить его в строковую переменную
Как я могу получить содержимое веб-страницы с помощью ASP.NET? мне нужно написать программу, чтобы получить HTML веб-страницы и сохранить его в строковой переменной.
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(); } }