web-dev-qa-db-ja.com

PhantomJSでJSONページのコンテンツを取得する

PhantomjsでJSONを解析する方法を知りたいのですが。すべてのページコンテンツはhtmlで囲まれています(<html><body><pre>{JSON string}</pre></body></html>)。囲んでいるタグを削除したり、「application/json」として別のコンテンツタイプを要求したりするオプションはありますか?そうでない場合、それを解析するための最良の方法は何ですか。 includeJS jQueryにインクルードした後にjQueryを使用していますか?

20
jgran

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();
});
36
JustEngland

これが私がしたことです:

var obj = page.evaluate(function() {
    return eval('(' + document.body.innerText + ')');
}

次に、取得したobjは、そのページから返されたJSONオブジェクトです。

0
syshen