我想知道如何在phantomjs中解析JSON。所有页面内容都包含在html (<html><body><pre>{JSON string}</pre></body></html>
)中。是否有删除封闭标签或要求不同的Content-Type作为"application/json“的选项?如果不是,解析它的最好方法是什么?它在包含includeJS jQuery之后还在使用jQuery吗?
发布于 2013-01-04 03:44: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();
});
发布于 2012-01-18 16:53:40
下面是我所做的:
var obj = page.evaluate(function() {
return eval('(' + document.body.innerText + ')');
}
那么您得到的obj就是从该页面返回的JSON对象。
发布于 2012-01-28 01:40:28
在已被接受的答案中,我建议使用JSON.parse()
将JSON字符串转换为对象。
例如,您的代码可能如下所示:
var jsonObject = page.evaluate(function() {
return JSON.parse(page.plainText);
});
https://stackoverflow.com/questions/8878839
复制相似问题