我有一个PhantomJS的docker容器。它有效,但我不能为phantomjs添加任何参数:
docker run —rm fizzka/phantomjs-source-capture http://phantomjs.org
这是工作
docker run —rm fizzka/phantomjs-source-capture --proxy=185.72.225.18:3128 http://phantomjs.org
它不起作用。我该怎么做,并改变我的代码?
Dockerfile:
FROM wernight/phantomjs
COPY src/printSource.js /
ENTRYPOINT ["phantomjs", "printSource.js"]
CMD ["--help"]
和我的printSource.js
var system = require('system');
var url = system.args[1];
if (!url || url == '--help') {
console.log("Usage: <docker-image-run> URL");
phantom.exit();
}
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
// page.render(output);
console.log(page.content);
phantom.exit();
}, 2000);
}
})
答案 0 :(得分:1)
您尝试运行的命令最终为:
phantomjs printSource.js --proxy=185.72.225.18:3128 http://phantomjs.org
但是,从phantomjs cli ref开始,您需要在js文件之前传递选项(如--proxy
),以便将其传递给phantomjs而不是js脚本。
答案 1 :(得分:1)
您可以尝试
FROM wernight/phantomjs
COPY src/printSource.js /
ENTRYPOINT ["phantomjs", "printSource.js", "--ignore-ssl-errors=true", "filename=filename", "sessionId=<sesssionId>", "domain=localhost", "url=<phantomjs host address>"]
这是您可以添加更多命令参数的方式。