Estoy desarrollando una herramienta que necesita descargar una página web del servidor de terceros, ejecutarla como lo haría un navegador y luego analizar el HTML. Lo que me cuesta es que la herramienta necesite analizar el HTML después de que se haya ejecutado javascript y se haya modificado DOM. Intento usar PhantomJS para este propósito y funciona con pequeños fragmentos de código (solo un pequeño documento html con javascript externo que agrega algunos nodos a DOM) pero cuando hago lo mismo con un sitio real (http://www.dba.dk/) estoy no obtener el HTML final después de todas las modificaciones hechas por el código js.PhantomJS y obtener el DOM modificado
Realmente necesito ayuda ya que me he quedado atascado durante más de una semana.
Mi código PhantomJS es simple:
if (phantom.state.length === 0) {
if (phantom.args.length === 0) {
console.log('Usage: test.js <some URL>');
phantom.exit();
} else {
var address = phantom.args[0];
phantom.state = Date.now().toString();
phantom.viewportSize = { width: 1280, height: 800 };
phantom.open(address);
}
} else {
var elapsed = Date.now() - new Date().setTime(phantom.state);
if (phantom.loadStatus === 'success') {
if (!first_time) {
var first_time = true;
if (!document.addEventListener) {
console.log('Not SUPPORTED!');
}
phantom.render('result.png');
var markup = document.documentElement.innerHTML;
console.log(markup);
phantom.exit();
}
} else {
console.log('FAIL to load the address');
phantom.exit();
}
}
el código HTML vuelca en la consola no contiene contenido generado dinámicamente