El paquete de agilidad html está devolviendo código javascript, excepto el HTML real

c# html-agility-pack javascript parsing

Pregunta

Quiero obtener los enlaces usando la consola c # de un sitio web usando html agility pack, pero hay un código de script java escrito en la etiqueta li y href. ¿Por qué el código java cambia el código al hacer clic? No sé. Dígame la solución. ¿Cómo obtener el código real?

<li onmouseover="activate_menu('top-menu-61', 61); void(0);" onmouseout="deactivate_menu('top-menu-61', 61);"><a href="javascript:void();

Puedo ver esto en mi li y una etiqueta, cómo resolver esto y obtener el código HTML real para poder obtener enlaces furthur

Respuesta popular

Intente usar herramientas de automatización del navegador como Selenium WebDriver para generar una página web completamente, utilizando un navegador real, antes de pasarla a HtmlAgilityPack para analizar. Usar Selenium debería ser bastante fácil, como se ilustra a continuación. Solo necesita asegurarse de que todas las herramientas necesarias (la biblioteca de Selenium y el controlador de navegador de su elección) estén correctamente instaladas de antemano:

// Initialize the Chrome Driver (or any other supported browser)
using (var driver = new ChromeDriver())
{
    // open the target page
    driver.Navigate().GoToUrl("the_targt_page_url_here");

    //maybe add selenium waits if needed, 
    //to wait until certain element appear in the page

    //pass the HTML page to HAP's HtmlDocument
    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(driver.PageSource);
}

Selenium también proporciona formas de ubicar elementos dentro de una página, por lo que es posible reemplazar HAP completamente con Selenium, si lo desea.



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é