gpt4 book ai didi

go - 将完整代码传递给 phantomjs

转载 作者:IT王子 更新时间:2023-10-29 01:36:32 29 4
gpt4 key购买 nike

我正在用 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();
});

这永远不会改变。除了要获取的 url :)。所以我的具体问题是:是否可以启动 phantomJS 并将上面的代码作为参数传递,以便一次调用即可执行。这样做的原因:我不想将 phantomjs 脚本与我的 Go 程序打包在一起。

最佳答案

PhantomJS 有一个交互式版本,您可以在其中通过标准输入传递代码,但有一个 bug (版本 1.9.x 和 2.0.0)因此无法打开任何页面,这实际上无法使用。

无法将脚本传递给 PhantomJS 进行解释。您至少需要一个文件。你也可以

  1. 创建一个与可执行文件一起发布的模板文件,并使用该文件和附加的 (URL) 参数调用 PhantomJS 或

  2. 您从某个临时目录生成文件并让 PhantomJS 使用它。

如果您有理由相信写入时间与使用时间漏洞会被利用,那么您应该选择变体 1。

要使第一个案例完整,您可以使用 system.args在 PhantomJS 中读取从 go 传递的命令行选项,例如 URL。

关于go - 将完整代码传递给 phantomjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30515665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com