Если вы хотите использовать PhantomJS из node.js, вы можете использовать для этого несколько пакетов, одним из которых является phantom . Он поддерживает функции Promises и async / await:
const phantom = require('phantom');
(async function() {
const instance = await phantom.create();
const page = await instance.createPage();
await page.on('onResourceRequested', function(requestData) {
console.info('Requesting', requestData.url);
});
const status = await page.open('https://stackoverflow.com/');
const content = await page.property('content');
console.log(content);
await instance.exit();
})();
Конечно, вы можете просто запустить PhantomJS из командной строки и передать ему необходимые аргументы:
phantomjs script.js https://stackoverflow.com
и затем получить их в сценарии с помощью system.args
var system = require('system');
var args = system.args;
if (args.length === 1) {
console.log('Try to pass some arguments when invoking this script!');
} else {
args.forEach(function(arg, i) {
console.log(i + ': ' + arg);
});
}
Обратите внимание, что вы используете page.open
неправильно, в сигнатуре функции обратного вызова нет data
var. Если вы хотите получить все содержимое страницы, обратитесь к page.content variable:
page.open('http://phantomjs.org', function (status) {
var content = page.content;
console.log('Content: ' + content);
phantom.exit();
});