Начал разбираться с PhantomJS. Выполняю простейший скрипт:
var system = require('system');
var os = system.os;
var args = system.args;
var scriptName = args[0];
var name = args[1];
var url = args[2];
var page = require('webpage').create();
// ERROR HANDLING
var webPage = require('webpage');
var page = webPage.create();
page.onError = function(msg, trace) {
var msgStack = ['ERROR: ' + msg];
if (trace && trace.length) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
});
}
console.error(msgStack.join('\n'));
};
// END
if(args.length === 2) {
throw new Error('Name as system argument missing.');
}
console.log(
'Hey ' + name + '.\n' +
'You PC is ' + os.architecture + ' ' + os.name + os.version + '.\n' +
'Executed: ' + scriptName + '.\n' +
'Opening ' + url + '...'
);
page.open(url, function(status) {
console.log('Status: ' + status);
// Do other things here...
page.viewportSize = {
width: 1200,
height: 1000
};
page.render('image1200.png');
console.log('Rendered image: ' + url + '(1200px)');
page.viewportSize = {
width: 800,
height: 1000
};
page.render('image800.png');
console.log('Rendered image: ' + url + '(800px)');
page.viewportSize = {
width: 500,
height: 1000
};
page.render('image500.png');
console.log('Rendered image: ' + url + '(500px)');
// EXIT
phantom.exit();
});
Который просто заходит на сайт, и делаеть 3 скриншота с разным вьюпортом. Элементерно вроде? Так вот, захожу на
bloomberg.com - и получаю загрузку проца под 100%, скрипт выполняется минуты 3 (лол!), в итоге скриншоты КРИВЫЕ.
Итого - на помойку отправлять или дальше разбиратся? Моя цель - найти инструмент для автоматизации некоторых действий на сайтах (например, регистрация, постинг в соц сетях и тд), а также веб-скрейпинг (те же странички в соц сетях, а также различные хтмл-таблицы).
Есть ли лучшие альтернативы для моих целей?