是否有可能从node.js运行PhantomJS作为命令行参数

我最近正在testingpython作为命令行参数运行phantomJS,我还没有到它,但看到的例子。 因为PhantomJS是从命令行运行的,所以这似乎是可能的。 PhantomJS会吐出的结果会直接进入一个variables。

在我走下这条路之前,在node.js中做这个工作实际上对我更有用,它让我思考,我可以用节点来运行PhantomJS,因为程序从命令行运行并存储数据结果PhantomJS通常会吐出一个variables?

我宁愿不使用phantomjs节点,因为它似乎使用了太多的技巧。

所有这些的原因是能够同时运行PhantomJS程序所需的另一个动作,并使用结果数据logging其他的东西。

简单地说,你可以在python中运行系统命令行的东西,我可以在node.js中做同样的事情吗?

干杯:)

编辑:我明白,节点和幻影使用不同的JS环境,这很酷,因为我只是想运行幻影作为自己的进程,并捕获所有输出数据到一个node.jsvariables(数据将是一个对数组,string和浮点。)我不想'幻想驾驶',我会制作加载的JavaScript文件待办事项我想要的。 我想要的只是幻像输出。 🙂

我想你可以为Node.js运行一个简单的脚本; 在那个脚本phantomjs脚本将作为一个subprocess运行。 你可以在这个答案中看到工作示例(和一些文档的链接)。 我想这个讨论可能对你也有帮助。

从NPM: https : //npmjs.org/package/phantomjs

 var path = require('path') var childProcess = require('child_process') var phantomjs = require('phantomjs') var binPath = phantomjs.path var childArgs = [ path.join(__dirname, 'phantomjs-script.js'), 'some other argument (passed to phantomjs script)' ] childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) { // handle results }) 

作为唐纳德·德里克的答案的替代,你可以使用spawn函数。 它将允许您在生成subprocess的输出后立即读取输出,而不是将输出缓冲并一次返回给您。

你可以在这里阅读更多。

文档中的一个例子。

 var spawn = require('child_process').spawn, ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', function (data) { console.log('stdout: ' + data); }); ls.stderr.on('data', function (data) { console.log('stderr: ' + data); }); ls.on('close', function (code) { console.log('child process exited with code ' + code); });