Sé que este tipo de pregunta debe haber sido formulada anteriormente, pero buscando no encontré una solución:Renderizar JavaScript y HTML en (cualquier) programa Java (Acceso al árbol DOM renderizado)?
Mi pregunta es: ¿cuáles son las mejores bibliotecas de Java para "descargar completamente cualquier página y renderizar el JavaScript incorporado (s) y luego acceda programáticamente a la página web renderizada (que es el DOM-Tree!) y obtenga el Árbol DOM como una "Fuente HTML".
(Algo similar es lo que hace firebug al final, renderiza la página y Obtengo acceso al Árbol DOM completamente renderizado, ¡como se ve la página en el navegador! Por el contrario, si hago clic en "mostrar origen", solo obtengo el código fuente JavaScript. Esto no es lo que quiero. Necesito tener acceso al página renderizada ...)
(con la representación me refiero solamente haciendo que el árbol DOM no una representación visual ...)
Esto no tiene que ser una sola biblioteca, que está bien tener varias bibliotecas que pueden lograr esto juntos (uno descargará, renderizará ...) pero debido a la naturaleza dinámica de JavaScript, es probable que la biblioteca JavaScript también tenga que tener algún tipo de descargador para representar completamente cualquier JS asincrónico ...
Antecedentes: En " buenos días "HttpClient (Biblioteca Apache) era todo lo que se necesitaba para construir tu propio rastreador muy simple. (Muchos editores como Nutch o Heretrix siguen construyendo en torno a este principio básico, centrándose principalmente en el análisis HTML estándar, por lo que no puedo aprender de ellos) Mi problema es que tengo que rastrear algunos sitios web que dependen en gran medida de JavaScript y que no puedo analizar con HttpClient ya que definitivamente necesito ejecutar los JavaScripts antes ...
¡Muchas gracias! Tim
Cuando dice "renderizar js asincrónico" ¿quiere decir que la biblioteca necesita tener la capacidad de "raspar" las llamadas asincrónicas que hace la página?Esto sería realmente difícil porque básicamente trataría de capturar el contenido de una página dinámica que se actualiza después de que se complete la solicitud inicial y, a veces, los datos no se extraen de forma asíncrona hasta que el usuario desencadena un evento. – bsimic