Мне нужно скачать и разобрать веб-сайт, созданный ASP.NET. Если я использую приведенный ниже код, я получаю только половину страницы без отображаемого «контента», который мне нужен. Я хотел бы получить полный контент, который можно увидеть с помощью Firebug или IE Developer Tool.
Как я могу это сделать. Я не нашел решения.
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
string code = streamReader.ReadToEnd();
Спасибо!
UPDATE
Я попробовал решение webcontrol. Но это не сработало. Я в проекте WPF и использую следующий код, и даже не получаю содержимое веб-сайта. Я не вижу своей ошибки сейчас :(.
System.Windows.Forms.WebBrowser webBrowser = new System.Windows.Forms.WebBrowser();
Uri uri = new Uri(myAdress);
webBrowser.AllowNavigation = true;
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
webBrowser.Navigate(uri);
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
System.Windows.Forms.WebBrowser wb = sender as System.Windows.Forms.WebBrowser;
string tmp = wb.DocumentText;
}
ОБНОВЛЕНИЕ 2
Это код, который я придумал тем временем.
Однако я не получаю никакого вывода. Моя elementCollection не возвращает никаких значений.
Если бы я мог получить исходный код html в виде строки, я был бы счастлив и проанализировал его с помощью HtmlAgilityPack.
(Я не хочу включать браузер в свой код XMAL)
Извините за нервы!
Спасибо!
WebBrowser wb = new WebBrowser();
wb.Source = new Uri(MyURL);
HTMLDocument doc = (HTMLDocument)wb.Document;
IHTMLElementCollection elementCollection = doc.getElementsByName("body");
foreach (IHTMLElementCollection element in elementCollection)
{
tb.Text = element.toString();
}