我关注this tutorial并创建了正在创建网站的图片。我想要的是输出网站的文字而不是图像。
config.ru
文件如下所示:
require 'sinatra/base'
require 'digest/md5'
class App < Sinatra::Base
get '/' do
return "to specifiy the rendered URL use \"?url=<some url>\"" unless params[:url]
digest = Digest::MD5.hexdigest(params[:url])
system(File.expand_path("~/app-root/data/phantomjs/bin/phantomjs"), File.expand_path("~/app-root/data/phantomjs/examples/rasterize.js"), params[:url], "public/#{digest}.png")
digest
end
end
run App
我找到了输出内容的示例,这里是代码content.js
:
var webPage = require('webpage');
var page = webPage.create();
page.open('http://google.com', function () {
console.log(page.content);
phantom.exit();
});
所以有两个问题:
page.content
?url
查询字符串参数传递给content.js
文件?答案 0 :(得分:0)
要使用console.log
,您需要编写一个特殊的侦听器 - 请参阅onConsoleMessage。顺便提一下,有类似的东西可以看到错误。
这些文档给出了一个例子:
var webPage = require('webpage');
var page = webPage.create();
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
为了将参数传递给幻像脚本,我搜索了现有的StackOverflow问题并找到了phantomJS - Pass Argument to the JS File。似乎这样做的方法是使用命令行参数。有关详细信息,请参阅phantom docs on args
。
似乎您的system
调用正常,但在幻像脚本中,您需要使用args
来读取传递的参数。