2016-06-22 22 views
1

私はthis tutorialに続き、ウェブサイトの画像を作成しています。私が望むのは、イメージではなくウェブサイトのテキストを出力することです。URLのテキストを出力するようにPhantomJSを設定する方法

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 

、ここでのコードは、content.jsです:

var webPage = require('webpage'); 
var page = webPage.create(); 
page.open('http://google.com', function() { 
    console.log(page.content); 
    phantom.exit(); 
}); 

ので、2つの質問があります。

    は、
  1. page.contentを印刷するにはどうすればよいですか?
  2. クエリ文字列パラメータurlcontent.jsファイルに渡すにはどうすればよいですか?

答えて

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の呼び出しはOKですが、ファントムスクリプトでは、渡された引数を読むためにargsを使用する必要があります。

+0

回答ありがとうございました。 console.logでは、ウェブサイトのテキストコンテンツをブラウザに印刷しようとしています。言い換えれば、誰かがhttp://myurl.com/?url=google.comを訪問すると、そのサイトにあるすべてのテキストを表示したいと考えています。 –

関連する問題