Sha256: 41ee7936a9b8246665a670001c6cc77171407ca0bcf9c2ef343cc08b30fd3136
Contents?: true
Size: 1.68 KB
Versions: 2
Compression:
Stored size: 1.68 KB
Contents
// Render Multiple URLs to file // FIXME: For now it is fine with pure domain names: don't think it would work with paths and stuff like that var system = require('system'); // Extend the Array Prototype with a 'foreach' Array.prototype.forEach = function (action) { var i, len; for ( i = 0, len = this.length; i < len; ++i ) { action(i, this[i], len); } }; /** * Render a given url to a given file * @param url URL to render * @param file File to render to * @param callback Callback function */ function renderUrlToFile(url, file, callback) { var page = require('webpage').create(); page.viewportSize = { width: 800, height : 600 }; page.settings.userAgent = "Phantom.js bot"; page.open(url, function(status){ if ( status !== "success") { console.log("Unable to render '"+url+"'"); } else { page.render(file); } delete page; callback(url, file); }); } // Read the passed args var arrayOfUrls; if ( system.args.length > 1 ) { arrayOfUrls = Array.prototype.slice.call(system.args, 1); } else { // Default (no args passed) console.log("Usage: phantomjs render_multi_url.js [domain.name1, domain.name2, ...]"); arrayOfUrls = [ 'www.google.com', 'www.bbc.co.uk', 'www.phantomjs.org' ]; } // For each URL arrayOfUrls.forEach(function(pos, url, total){ var file_name = "./" + url + ".png"; // Render to a file renderUrlToFile("http://"+url, file_name, function(url, file){ console.log("Rendered '"+url+"' at '"+file+"'"); if ( pos === total-1 ) { // Close Phantom if it's the last URL phantom.exit(); } }); });
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
phantomjs.rb-0.0.2 | vendor/phantomjs-1.5.0-liunx-x86-dynamic/examples/render_multi_url.js |
phantomjs.rb-0.0.1 | vendor/phantomjs-1.5.0-liunx-x86-dynamic/examples/render_multi_url.js |