cómo obtener código javascript también con la fuente real con Html Agility Pack

c# html-agility-pack javascript parsing xpath

Pregunta

Obtengo la fuente de un sitio web que usa el paquete Html Agility, que es diferente al código cuando inspecciono con firebug. He buscado muchas cosas, pero aún no estoy claro qué debo hacer. La fuente es diferente que el código cuando inspecciono. Yo cómo obtener código javascript también con ese HTML. Incluso cuando deshabilito javascript en mi navegador, todavía no puedo obtener el código Javascript a lo largo de la fuente. estoy usando

string url="";
HtmlDocument doc = new HtmlDocument();
                WebClient client = new WebClient();
                html = client.DownloadString(url);
                doc.LoadHtml(html);

para obtener la fuente, dígame si debería necesitar un método de solicitud y respuesta para obtener el código JS también.

Respuesta aceptada

Para expandir la respuesta de @alecxe , puede usar Selenium * para cargar su página de destino como lo haría un navegador real, y luego pasar el resultado a HtmlAgilityPack para su posterior procesamiento:

using OpenQA.Selenium;

.....

IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);

alternativamente, puede ejecutar su consulta (XPath o selector de CSS) utilizando Selenium directamente, por ejemplo:

var result = driver.FindElements(By.XPath("your query"));

//print HTML of the returned elements
foreach (var item in result)
{
    Console.WriteLine(item.GetAttribute("outerHTML"));
}

*) Es necesario descargar primero Selenium, así como el controlador, es decir, PhantomJS, Firefox, etc. Se puede instalar Selenium en su proyecto fácilmente desde NuGet .


Respuesta popular

Para eso necesitarías un navegador real. Considere la posibilidad de automatizar un navegador (que puede ser sin cabeza, consulte PhantomJS ) con la ayuda de selenium .

Ver también:




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué