Rendera en javascript-webbsida med phantomjs
Jag försöker rendera en JavaScript-utvärderad källkod från en webbplats med hjälp av PhantomJS. Men varje gång jag försöker får jag bara källkoden som den är (liknande att visa källkod i webbläsaren). Vad jag egentligen vill ha är den JavaScript-utvärderade koden (det vi ser när vi inspekterar element i Google Chrome-webbläsaren). Min kod ser ut så här:
var page = require('webpage').create();
page.open('http://www.google.com/', function (s) {
console.log(page.content);
phantom.exit();
});
Gör jag något fel här?
Svar #1
Det här gjorde susen för mig:
window.setTimeout(function () {
page.render(output);
phantom.exit();
}, 1000);
Svar #2
Troligen ja. I många fall körs inte JavaScript-koden på webbsidan omedelbart. Du kan ta hänsyn till detta genom att ge en liten försening, t.ex. genom att använda setTimeout, innan du tar värdet av page.content.
