Phantomjs で JSON を解析する方法を知りたいです。ページの内容は html ( <html><body><pre>{JSON string}</pre></body></html>
) で囲みます。囲んでいるタグを削除したり、別の Content-Type を「application/json」として要求したりするオプションはありますか? そうでない場合、それを解析する最良の方法は何ですか。includeJS jQueryでインクルードした後、jQueryを使用していますか?
19319 次
4 に答える
36
Webkit ブラウザで構築された PhantomJS を使用しているため、ネイティブ JSON ライブラリにアクセスできます。page.evaluate を使用する必要はありません。ページ オブジェクトで plainText プロパティを使用するだけです。
http://phantomjs.org/api/webpage/property/plain-text.html
var page = require('webpage').create();
page.open('http://somejsonpage.com', function () {
var jsonSource = page.plainText;
var resultObject = JSON.parse(jsonSource);
phantom.exit();
});
于 2013-01-03T19:44:35.540 に答える
0
これが私がしたことです:
var obj = page.evaluate(function() {
return eval('(' + document.body.innerText + ')');
}
次に、取得した obj は、そのページから返された JSON オブジェクトです。
于 2012-01-18T08:53:39.580 に答える
-1
json データに html 文字列が含まれている場合、それらは提案されたpage.plainText
属性内で削除されます。
于 2016-10-09T12:53:47.953 に答える
-1
すでに受け入れられている回答のようにJSON.parse()
、JSON 文字列をオブジェクトに変換するために使用することをお勧めします。
たとえば、コードは次のようになります。
var jsonObject = page.evaluate(function() {
return JSON.parse(page.plainText);
});
于 2012-01-27T17:40:27.667 に答える