2013-02-28 1 views
4

J'essaie de rendre un code source évalué par javascript à partir d'un site Web en utilisant phantomjs. Mais chaque fois que j'essaie je reçois seulement le code source tel quel (semblable à la source de vue du navigateur). Ce que je veux réellement, c'est le code javascript évalué (ce que nous voyons d'inspecter l'élément du navigateur google chrome). Mon code ressemble à ceci:Rendu d'une page de page Web javascript avec phantomjs

var page = require('webpage').create(); 
page.open('http://www.google.com/', function (s) { 
    console.log(page.content); 
    phantom.exit(); 
}); 

Est-ce que je fais quelque chose de mal ici?

Répondre

3

Probablement oui. Dans de nombreux cas, le code JavaScript sur la page Web n'est pas exécuté immédiatement. Vous pouvez en tenir compte en donnant un peu de retard, par ex. en utilisant setTimeout, avant de prendre la valeur de page.content.

+2

des suggestions comment s'y prendre? N'importe quel petit exemple de code aiderait, peut-être vous avez raison, certains sites génèrent le contenu de javascript mais la plupart du temps ils ne le font pas. Également incapable de produire des résultats après un clic et charger. Toute aide à cet égard a vraiment apprécié! Merci d'avoir répondu – Trancey

4

Cela a fait l'affaire pour moi:

window.setTimeout(function() { 
     page.render(output); 
     phantom.exit(); 
    }, 1000); 
Questions connexes