サイトをクロールするために CasperJS を使用しています。興味深いことを見つけましたが、なぜそれが起こっているのかよくわかりません。
そのため、CasperJS (および PhantomJS) を使用すると、Evaluate PhantomJS Evaluate CasperJSメソッドを使用して Page コンテキストに入ることができます。
ページ コンテキスト内にオブジェクトを作成しました。それを CasperJS に返すために、それを文字列に変換します。これが私がすることです:
casper.then(function() {
var test = this.evaluate(function() {
var test_obj = { test_obj: ['test'] }
console.log("TEST OBJECT VALUE:");
var JSON_obj = JSON.stringify(test_obj);
console.log(JSON_obj);
return JSON_obj;
});
});
したがって、2 つの異なるページでは、結果が異なります。
このページのコンテキストでは、JSON_obj の値は次のとおりです。
{"test_obj":"[\"test\"]"}
この別のページコンテキストでは、JSON_obj 値は次のようになります。
{"test_obj":["test"]}
Rubyで結果をキャッチするので、これは悪いことですJSON.parse
。最初のケースでは、配列を文字列として扱います...JSON.stringify
異なるページコンテキストで「異なる」動作をするのはなぜですか? 私にとって興味深い!