Получить окончательный сгенерированный источник HTML с помощью c # или vb.net

используя VB.net или c #, Как получить сгенерированный источник HTML?

Чтобы получить html-источник страницы, я могу использовать это ниже, но это не приведет к созданию сгенерированного источника, он не будет содержать ни один из html, который динамически добавлялся javascript в браузере. Как получить конечный сгенерированный HTML-источник?

благодаря

WebRequest req = WebRequest.Create("http://www.asp.net"); WebResponse res = req.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream()); string html = sr.ReadToEnd(); 

если я попробую это ниже, то он вернет документ с введенным кодом JavaScript

 Public Class Form1 Dim WB As WebBrowser = Nothing Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load WB = New WebBrowser() Me.Controls.Add(WB) AddHandler WB.DocumentCompleted, AddressOf WebBrowser1_DocumentCompleted WB.Navigate("mysite/Default.aspx") End Sub Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) 'Dim htmlcode As String = WebBrowser1.Document.Body.OuterHtml() Dim s As String = WB.DocumentText End Sub End Class 

HTML возвращен

       
//test text this text should be here
document.getElementById("center_text_panel").innerText = "test text";

Вы можете использовать WebKit.NET

Смотрите официальные учебные пособия

Это может не только захватить источник, но и обработать javascript через событие pageload.

 webKitBrowser1.Navigate(MyURL) 

Затем обработайте событие DocumentCompleted и:

 private documentContent = webKitBrowser1.DocumentText 

Изменить. Возможно, это лучший вариант WebKit с открытым исходным кодом: http://code.google.com/p/open-webkit-sharp/

Просто поставьте элемент управления webbrowser в свою форму, и вы пропустите код:

  webBrowser1.Navigate("YourLink"); private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { string htmlcode= webBrowser1.Document.Body.InnerHtml;//Or Each Filed Or element..//WebBrowser.DocumentText } 

отредактированный

для получения также html-кода, который генерируется динамически с помощью кода java-скрипта, у вас есть два пути:

  1. запустить текущий код после события webBrowser1_DocumentCompleted
  StringBuilder htmlcode = new StringBuilder(); foreach (HtmlElement item in webBrowser1.Document.All) { htmlcode.Append( item.InnerHtml); } 
  1. написать код javascript для возврата document.documentElement.innerHTML и использовать InvolkeScript Function To Return Результат:
  var htmlcode = webBrowser1.Document.InvokeScript("javascriptcode"); 

Вы можете использовать этот код:

 webBrowser1.Document.Body.OuterHtml 
  • Что быстрее? ByVal или ByRef?
  • Запись текстовых файлов без байтовой маркировки (BOM)?
  • Слушайте нажатие клавиши, когда программа находится в фоновом режиме
  • Linq to Sql: множественные левые внешние соединения
  • OleDbException был необработанным ... Ошибка синтаксиса в инструкции UPDATE
  • Как подсчитать количество строк в excel с данными?
  • Является ли пространство имен Microsoft.VisualBasic «истинным .NET» кодом?
  • Почему Словарь предпочтительнее Hashtable?
  • Цвет отдельных элементов в winforms ComboBox?
  • Эквивалентность «С ... End With» в C #?
  • Установка объектов на Null / Nothing после использования в .NET.
  • Давайте будем гением компьютера.