2014-09-23 1 views
1

Я хотел бы очистить содержимое с динамической веб-страницы (похоже, она разработана в MVC).Как получить HTML-содержимое веб-страницы из ASP.NET

Логика очистки данных выполняется с гибкостью HTML, но теперь проблема заключается в том, что HTML-код возвращен при запросе URL-адреса из браузера, а веб-ответ URL-адреса из веб-запроса ASP.NET отличается.

В основном ответ браузера имеет динамические данные, которые мне нужны (визуализирует на основе значения, переданного в строке запроса), но результат WebResponse отличается.

Не могли бы вы помочь мне получить фактическое содержание динамической веб-страницы WebRequest.

Ниже приведен код, который я использовал для чтения:

WebRequest request = WebRequest.Create(sURL); 
request.Method = "Get"; 
//Get the response 
WebResponse response = request.GetResponse(); 
//Read the stream from the response 
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8); 
+2

Каким образом это «результат WebResponse» отличается? –

+0

Содержимое HTML, которое я получаю из View Source веб-URL, отличается от HTML-содержимого для веб-ответа ASP.Net. Пример: Если URL-адрес для ресторанов в определенном почтовом коде, браузер, запрошенный HTML, имеет список ресторанов в этой области, но в веб-ответе HTML нет ресторанов в этом DIV. - Ответ ASP.Net в сети – Gopinath

ответ

7

Чтобы получить содержимое любой веб-страницы с помощью HttpWebRequest ...

// We will store the html response of the request here 
string siteContent = string.Empty; 

// The url you want to grab 
string url = "http://google.com"; 

// Here we're creating our request, we haven't actually sent the request to the site yet... 
// we're simply building our HTTP request to shoot off to google... 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.AutomaticDecompression = DecompressionMethods.GZip; 

// Right now... this is what our HTTP Request has been built in to... 
/* 
    GET http://google.com/ HTTP/1.1 
    Host: google.com 
    Accept-Encoding: gzip 
    Connection: Keep-Alive 
*/ 


// Wrap everything that can be disposed in using blocks... 
// They dispose of objects and prevent them from lying around in memory... 
using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()) // Go query google 
using(Stream responseStream = response.GetResponseStream())    // Load the response stream 
using(StreamReader streamReader = new StreamReader(responseStream))  // Load the stream reader to read the response 
{ 
    siteContent = streamReader.ReadToEnd(); // Read the entire response and store it in the siteContent variable 
} 

// magic... 
Console.WriteLine (siteContent); 
+1

Если вы хотите опубликовать это, напишите комментарий, по крайней мере, объясните, почему я могу его улучшить, а другие не создают впечатление, что это решение не " t work –

+0

Спасибо за это, но все, что мне нужно знать, - это то, почему запрос URL из браузера возвращает правильный результат (HTML), что веб-запрос ASP.Net не может. Это из-за запрошенного сайта было разработано в ASP.Net MVC? – Gopinath

+0

Он сможет ... там могут быть другие вещи, но что бы это ни было ... Я могу заверить вас, что если вы можете посетить его в веб-браузере ... вы можете посетить его, используя HttpWebRequest потому что они оба используют HTTP. Возможно, проблема связана с переадресацией через JavaScript ... или, может быть, запросы AJAX запускаются после того, как загружена запрошенная вами страница ... Загрузите Fiddler ... и посмотрите HTTP-запросы, которые происходят, когда вы посещаете страницу в браузере –

 Смежные вопросы

  • Нет связанных вопросов^_^