Question

Je développe un outil qui doit télécharger une page Web à partir du serveur 3rd Party, l'exécuter comme navigateur, puis analysez le HTML.Ce que j'ai lutte avec c'est que l'outil doit analyser le HTML après que tout JavaScript soit exécuté et DOM est modifié.J'essaie d'utiliser des phanomjs à cet effet et cela fonctionne sur de petits extraits de code (juste un minuscule document HTML avec JavaScript externe qui ajoute des nœuds à DOM) mais quand je fais de même avec un site réel ( http://www.dba.dk/ ) Je ne reçois pas le dernier HTML après toutes les modifications effectuées par le code JS.

J'ai vraiment besoin d'aide pour cela comme je l'ai été bloqué pendant plus d'une semaine.

mon code Phantomjs est 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();
     }
}

Le HTML largué sur la console ne contient pas de contenu généré dynamiquement

Était-ce utile?

La solution

The problem was in the Flash plugin. The pages were detecting its absense. Once it was loaded correctly the problem was gone

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top