// 'url' is assigned to in a statement before this. var page = require('webpage').create(); var isReady = function () { return page.evaluate(function () { if (typeof Meteor === 'undefined' || Meteor.status === undefined || !Meteor.status().connected) { return false; } if (typeof Package === 'undefined' || Package.spiderable === undefined || Package.spiderable.Spiderable === undefined) { return false; } return Package.spiderable.Spiderable.isReady(); }); }; var dumpPageContent = function () { var out = page.content; out = out.replace(/]+>(.|\n|\r)*?<\/script\s*>/ig, ''); out = out.replace('', ''); console.log(out); }; page.open(url, function(status) { if (status === 'fail') phantom.exit(); }); setInterval(function() { if (isReady()) { dumpPageContent(); phantom.exit(); } }, 100);