首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以将node.js中的PhantomJS作为命令行参数运行

是否可以将node.js中的PhantomJS作为命令行参数运行
EN

Stack Overflow用户
提问于 2012-06-29 18:03:14
回答 3查看 20.1K关注 0票数 16

我最近打算测试从python中运行phantomJS作为命令行参数,我还没有抽出时间来做这件事,但已经看到了一些例子。因为PhantomJS是从命令行运行的,所以这似乎是可能的。PhantomJS输出的结果将直接进入一个变量。

在我走上这条路之前,让这项工作在node.js中运行对我来说实际上更有用,这让我思考,当程序从命令行运行时,我是否可以使用to node来运行PhantomJS,并将PhantomJS通常会输出的数据结果存储到变量中?

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

这样做的原因是能够在程序执行另一个操作的同时运行PhantomJS,并将其记录的结果数据用于其他一些内容。

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

干杯:)

编辑:我知道node和phantom使用不同的js环境,这很酷,因为我只想将phantom作为自己的进程运行,并将所有输出数据捕获到一个node.js变量中(数据将是一个由一对、字符串和浮点数组成的数组)。我不想用phantom‘驱动’,我会手工加载javascript文件来做我想做的事情。我想要的只是幻象输出。:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-29 18:51:44

我想您可以创建一个简单的脚本来运行Node.js;在这个脚本中,phantomjs脚本将作为一个子进程运行。您可以查看工作示例(以及一些文档的链接) in this answer。我想this discussion也可能对你有帮助。

票数 14
EN

Stack Overflow用户

发布于 2013-12-10 02:48:48

来自NPM:https://npmjs.org/package/phantomjs

代码语言:javascript
复制
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
})
票数 19
EN

Stack Overflow用户

发布于 2014-04-21 22:51:53

作为Donald Derek答案的替代方法,您可以使用spawn函数。它将允许您在生成输出后立即读取子进程的输出,而不是将输出缓冲并一次性返回给您。

你可以阅读更多关于它的here

一个来自the documentation的例子。

代码语言:javascript
复制
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);
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11259818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档