Obtenga la fuente html generada final usando c # o vb.net

usando VB.net o c #, ¿cómo obtengo la fuente HTML generada?

Para obtener la fuente html de una página, puedo usar esto a continuación, pero esto no obtendrá la fuente generada, no contendrá ninguno de los html que se agregaron dinámicamente mediante javascript en el navegador. ¿Cómo obtengo la fuente HTML final generada?

Gracias

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

si pruebo esto a continuación, devuelve el documento sin el código JavaScript inyectado

 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 devuelto

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

Puedes usar WebKit.NET

Mire aquí para ver los tutoriales oficiales

Esto no solo puede captar la fuente, sino también procesar javascript a través del evento de carga de página.

 webKitBrowser1.Navigate(MyURL) 

A continuación, gestione el evento DocumentCompleted y:

 private documentContent = webKitBrowser1.DocumentText 

Editar : esta podría ser la mejor opción de WebKit de fuente abierta: http://code.google.com/p/open-webkit-sharp/

Simplemente ponga un control webbrowser en su formulario y su código de flujo:

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

Editado

para obtener también el código html generado dinámicamente por código de script java, tiene dos formas:

  1. ejecutar el código que fluye después del evento webBrowser1_DocumentCompleted
  StringBuilder htmlcode = new StringBuilder(); foreach (HtmlElement item in webBrowser1.Document.All) { htmlcode.Append( item.InnerHtml); } 
  1. escriba un código de javascript para devolver document.documentElement.innerHTML y use la función de InvolkeScript para devolver el resultado:
  var htmlcode = webBrowser1.Document.InvokeScript("javascriptcode"); 

Puedes usar este código:

 webBrowser1.Document.Body.OuterHtml