2011-12-26 11 views

答えて

3

CasperJSをご覧ください。この種のWeb動作を簡単に実行できるようにする、非常に素晴らしいPhantomJSスクリプトです。

は限り今日のスタンドとして、あなたのPhantomJSスクリプトとの通信など、あなたはいくつかの信頼性の高いオプションがあります。

  1. は、コマンドライン引数経由でデータを渡します。
  2. ファイルの読み取り/書き込みによるデータ交換。
  3. PhantomJSスクリプトでGETS/POSTS経由でNode.jsスクリプトを呼び出します。
1

はい、C++とJSの間のQtWebKitブリッジに問題があります。 これは動作しますが、JSよりもC++の方が効果的です。

私たちは多くの問題に取り組むべき課題を持っていますが、これは需要の点で最高の1つです。

ところで、私は通常、「飾る」このようなpageオブジェクト:

var page = require("webpage").create(); 

page.evaluateWithParams = function(func) { 
    var args = [].slice.call(arguments, 1), 
     str = 'function() { return (' + func.toString() + ')(', 
     i, ilen, arg; 

    for (i = 0, ilen = args.length; i < ilen; ++i) { 
     arg = args[i]; 
     if (/object|string/.test(typeof arg)) { 
      str += 'JSON.parse(' + JSON.stringify(JSON.stringify(arg)) + '),'; 
     } else { 
      str += arg + ','; 
     } 
    } 
    str = str.replace(/,$/, '); }'); 
    return this.evaluate(str); 
} 

そしてあなたは、このようなページの範囲内の関数を呼び出すことができます。

var a = 1, b = 2; 
page.evaluateWithParams(function(arg1, args) { 
    // your code that uses arg1 and arg2 
}, a, b); 

希望をこれは役に立ちます。

Ivan

関連する問題