Получить источник некоторого веб-сайта из кода asp.net

Есть ли способ получить источник веб-сайта (желательно как строка), скажем, на www.google.com, из какого-то кода С# внутри кода сайта asp.net?

edit: конечно, я имею в виду код html - в каждом браузере вы можете просмотреть его с помощью "view source" в контекстном меню.

3 ответа

Предполагая, что вы хотите получить html:

class Program
{
 static void Main(string[] args)
 {
 using (WebClient client = new WebClient())
 using (Stream stream = client.OpenRead("http://www.google.com"))
 using (StreamReader reader = new StreamReader(stream))
 {
 Console.WriteLine(reader.*********());
 }
 }
}


Для С# я предпочитаю использовать HttpWebRequest через WebClient, потому что в будущем у вас может быть больше возможностей, например, с параметром GET/POST, используя Cookies и т.д.

У вас может быть краткое объяснение на MSDN.

Вот пример из MSDN:

// Create a new HttpWebRequest object.
 HttpWebRequest request=(HttpWebRequest) WebRequest.Create("http://www.contoso.com/example.aspx"); 
 // Set the ContentType property. 
 request.ContentType="application/x-www-form-urlencoded";
 // Set the Method property to 'POST' to post data to the URI.
 request.Method = "POST";
 // Start the asynchronous operation. 
 request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request); 
 // Keep the main thread from ********** while the asynchronous
 // operation completes. A real world application
 // could do something useful such as updating its user interface. 
 allDone.WaitOne();
 // Get the response.
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 Stream streamResponse = response.GetResponseStream();
 StreamReader streamRead = new StreamReader(streamResponse);
 string responseString = streamRead.*********();
 Console.WriteLine(responseString);
 // Close the stream object.
 streamResponse.Close();
 streamRead.Close();
 // Release the HttpWebResponse.
 response.Close();


это не самый очевидный (и лучший) способ, но я узнал, что в формах Windows вы можете использовать элемент управления WebBrowser (если он вам действительно нужен), заполните его свойство Url с URL-адресом, который вам нужен, и когда он загрузится, прочитайте свойство DocumentText - он содержит html-код просматриваемого сайта.

licensed under cc by-sa 3.0 with attribution.