Ruby 如何设置PhantomJS以输出url';s文本
我跟踪并有正在创建的网站的图片。我想要的是它输出一个网站的文本,而不是图像Ruby 如何设置PhantomJS以输出url';s文本,ruby,phantomjs,sinatra,Ruby,Phantomjs,Sinatra,我跟踪并有正在创建的网站的图片。我想要的是它输出一个网站的文本,而不是图像 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] dig
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
因此有两个问题:
页面内容
url
查询字符串参数传递到content.js
文件要使用
console.log
,您需要编写一个特殊的侦听器-请参阅。顺便说一句,为了看到错误,也有类似的东西
这些文档中给出了一个示例:
var webPage = require('webpage');
var page = webPage.create();
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
为了将参数传递给幻影脚本,我搜索了现有的StackOverflow问题并找到了。这样做的方法似乎是使用命令行参数。有关更多详细信息,请参阅
您的
system
调用似乎正常,但在幻影脚本中,您需要使用args
读取传递的参数 要使用console.log
您需要编写一个特殊的侦听器-请参阅。顺便说一句,为了看到错误,也有类似的东西
这些文档中给出了一个示例:
var webPage = require('webpage');
var page = webPage.create();
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
为了将参数传递给幻影脚本,我搜索了现有的StackOverflow问题并找到了。这样做的方法似乎是使用命令行参数。有关更多详细信息,请参阅
您的
system
调用似乎正常,但在幻影脚本中,您需要使用args
读取传递的参数 谢谢你的回答Max。我正在用console.log将网站的文本内容打印到浏览器上。换句话说,当有人访问时,我希望看到该网站上的所有文本。感谢您的回答Max。使用console.log,我正在尝试将网站的文本内容打印到浏览器上。换句话说,当有人访问时,我希望看到该站点上的所有文本。