我正在Go中编写一个服务,我正在使用phantomJS从给定的URL生成图像.从我的Go程序,我正在使用Exec启动phantomJS二进制文件.这工作正常,但现在我正在寻找一种方法来传递完整的代码,以及运行二进制文件的调用.我的代码如下:
var args = require('system').args;
var webPage = require('webpage');
var page = webPage.create();
page.viewportSize = {
width: 1920,
height: 1080
};
page.open("http://www.url2fetch.com", function (status) {
var base64 = page.renderBase64('PNG');
console.log(base64);
phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)
这永远不会改变.除了获取的网址:).所以我的具体问题是:是否可以启动phantomJS并将上面的代码作为参数传递,以便可以通过一次调用执行.原因:我不想将phantomjs脚本与我的Go程序一起打包.
PhantomJS有一个交互式版本,您可以通过stdin传递代码,但是有一个错误(版本1.9.x和2.0.0),因为没有页面可以打开,这使得它实际上无法使用.
没有办法将脚本传递给PhantomJS进行解释.您需要至少有一个文件.你也可以
创建随可执行文件一起提供的模板文件,并使用该文件和附加(URL)参数调用PhantomJS
你生成文件进入一些临时目录,让PhantomJS使用它.
如果您有理由相信写入时间与使用时间漏洞将被利用,那么您应该使用变体1.
要完成第一个案例,您可以system.args在PhantomJS中使用来自go的传递的命令行选项,例如URL.
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |