node.jsスクリプトでphantomjsを使用したいと思います。そこphantomjs-nodeライブラリです..しかし、残念ながら、著者は、彼がやっているかを説明するために、この奇妙なコーヒーのスクリプトコードを使用:phantomjsはnode.jsで動作しますか?
phantom = require 'phantom'
phantom.create (ph) ->
ph.createPage (page) ->
page.open "http://www.google.com", (status) ->
console.log "opened google? ", status
page.evaluate (-> document.title), (result) ->
console.log 'Page title is ' + result
ph.exit()
私はJavaScriptで直接phantomjsを使用した場合、今、それはthis次のようになります。
var page = require('webpage').create();
page.open(url, function (status) {
var title = page.evaluate(function() {
return document.title;
});
console.log('Page title is ' + title);
});
はとても基本的に、私はコーヒースクリプトdocumentationを読み取ることによって、(上記の通常のjavascriptのコードの最初のスニペットの同等を書くしようとしている。これは私がやったことです:
// file name: phantomTest.js
var phantom = require('phantom');
phantom.create(function(ph) {
ph.createPage(function(page) {
page.open('http://www.google.com', function(status) {
console.log('opened google?', status);
var title = page.evaluate(function() {
return document.title;
});
console.log('page title is ' + title);
});
});
ph.exit();
});
残念ながら、それは動作していません!実行した場合
シェルでは、何も起こりません。何も返されず、プロセスは停止しません..任意のアイデア?私はちょうどphantomjs faqでこれを読ん
:
更新
Q:なぜPhantomJSはNode.jsのモジュールとして書かれていませんか?
A:短い答え:「誰も2人のマスターを務めることはできません」
より長い説明は次のとおりです。
今のところ技術的に非常に難しいです。
すべてのNode.jsモジュールは基本的にNode.jsのコアである (つまり「マスター」)の「スレーブ」です。現在の状態では、PhantomJS(およびその付属の WebKit)は、 (イベントループ、ネットワークスタック、およびJavaScriptの実行)以上のすべての制御(同期問題で)を必要とします。
意図がちょうどいいのNode.js内で実行されているスクリプト からPhantomJSの使用についてであるならば、そのような「緩い結合」PhantomJSプロセスを起動 によって達成し、それと対話することができます。
mmm ..これはこれと関連がありますか?しかし、その図書館全体は意味をなさないでしょう!
アップデート2:私は同じことを行いwebにこのコードを見つけ
:
var phantom = require('phantom');
phantom.create(function(ph) {
return ph.createPage(function(page) {
return page.open("http://www.google.com", function(status) {
console.log("opened google? ", status);
return page.evaluate((function() {
return document.title;
}), function(result) {
console.log('Page title is ' + result);
return ph.exit();
});
});
});
});
は、残念ながらそれは...同じ結果のいずれかを働いていません!
から戻っていません。 –
また、他のNode.jsブリッジよりも推奨されるhttps://github.com/sheebz/phantom-proxyがあります。人々はRuby、PHP、Node.jsで様々な成功を収めてPhantomJSのブリッジを使用してきました。 –
私は強い言い訳をすることをお詫びします。私は質問から取り除きます。私はまた、 'ファントムプロキシ'を見ていきます。私の目標は物事を働かせることです他の人々の努力を軽視してはならない。 – abbood