我最近打算测试从python中运行phantomJS作为命令行参数,我还没有抽出时间来做这件事,但已经看到了一些例子。因为PhantomJS是从命令行运行的,所以这似乎是可能的。PhantomJS输出的结果将直接进入一个变量。
在我走上这条路之前,让这项工作在node.js中运行对我来说实际上更有用,这让我思考,当程序从命令行运行时,我是否可以使用to node来运行PhantomJS,并将PhantomJS通常会输出的数据结果存储到变量中?
我宁愿不使用phantomjs-node,因为它似乎使用了太多的技巧。
这样做的原因是能够在程序执行另一个操作的同时运行PhantomJS,并将其记录的结果数据用于其他一些内容。
简单地说,你可以在python中运行系统命令行,我能在node.js中做同样的事情吗?
干杯:)
编辑:我知道node和phantom使用不同的js环境,这很酷,因为我只想将phantom作为自己的进程运行,并将所有输出数据捕获到一个node.js变量中(数据将是一个由一对、字符串和浮点数组成的数组)。我不想用phantom‘驱动’,我会手工加载javascript文件来做我想做的事情。我想要的只是幻象输出。:)
发布于 2012-06-29 18:51:44
我想您可以创建一个简单的脚本来运行Node.js;在这个脚本中,phantomjs
脚本将作为一个子进程运行。您可以查看工作示例(以及一些文档的链接) in this answer。我想this discussion也可能对你有帮助。
发布于 2013-12-10 02:48:48
来自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
})
发布于 2014-04-21 22:51:53
作为Donald Derek答案的替代方法,您可以使用spawn
函数。它将允许您在生成输出后立即读取子进程的输出,而不是将输出缓冲并一次性返回给您。
你可以阅读更多关于它的here。
一个来自the documentation的例子。
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);
});
https://stackoverflow.com/questions/11259818
复制相似问题