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=&lt;some url&gt;\"" 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=&lt;some url&gt;\"" 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,我正在尝试将网站的文本内容打印到浏览器上。换句话说,当有人访问时,我希望看到该站点上的所有文本。