首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PhantomJS获取JSON页面内容

使用PhantomJS获取JSON页面内容
EN

Stack Overflow用户
提问于 2012-01-16 18:43:25
回答 4查看 19.3K关注 0票数 20

我想知道如何在phantomjs中解析JSON。所有页面内容都包含在html (<html><body><pre>{JSON string}</pre></body></html>)中。是否有删除封闭标签或要求不同的Content-Type作为"application/json“的选项?如果不是,解析它的最好方法是什么?它在包含includeJS jQuery之后还在使用jQuery吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-04 03:44:36

由于您使用的是由webkit浏览器构建的PhantomJS,因此您可以访问原生JSON库。不需要使用page.evaluate,只需使用页面对象的plainText属性即可。

http://phantomjs.org/api/webpage/property/plain-text.html

代码语言:javascript
复制
var page = require('webpage').create();
page.open('http://somejsonpage.com', function () {
    var jsonSource = page.plainText;
    var resultObject = JSON.parse(jsonSource);
    phantom.exit();
});
票数 36
EN

Stack Overflow用户

发布于 2012-01-18 16:53:40

下面是我所做的:

代码语言:javascript
复制
var obj = page.evaluate(function() {
    return eval('(' + document.body.innerText + ')');
}

那么您得到的obj就是从该页面返回的JSON对象。

票数 0
EN

Stack Overflow用户

发布于 2012-01-28 01:40:28

在已被接受的答案中,我建议使用JSON.parse()将JSON字符串转换为对象。

例如,您的代码可能如下所示:

代码语言:javascript
复制
var jsonObject = page.evaluate(function() {
  return JSON.parse(page.plainText);
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8878839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档