使用 javascript 和 CasperJS 从 JSON url 中提取特定的 key:value 对
Pulling specific key:value pairs from JSON url with javascript and CasperJS
假设 url 是:https://api.github.com/users/mralexgray/repos
我只想提取 "html_url" 键的所有 key:value 对。
我一直在尝试使用以下内容:
function extractJSON() {
$.ajax({
url: "https://api.github.com/users/mralexgray/repos",
dataType: 'json',
success: function(data) {
alert(data.html_url);
return data.html_url;
};
});
// casperjs begins below
casper.start(https://api.github.com/users/mralexgray/repos, function() {
});
casper.then(function() {
var output = this.evaluate(extractJSON());
this.echo(output);
});
casper.run();
感谢您抽出宝贵时间参与本次活动!
可能的解决方案是抓取该站点的整个文本并在 json 中解析它,然后您可以像这样轻松访问 json:
var casper = require('casper').create();
var url = 'https://api.github.com/users/mralexgray/repos';
var text;
var json;
casper.start(url);
casper.then(function() {
text = casper.fetchText('body pre');
json = JSON.parse(text);
});
casper.then(function() {
for (var i=0; i < json.length; i++) {
casper.echo("html_url: " + json[i].html_url);
casper.echo("html_url owner: " + json[i].owner.html_url);
}
});
casper.run();
假设 url 是:https://api.github.com/users/mralexgray/repos
我只想提取 "html_url" 键的所有 key:value 对。
我一直在尝试使用以下内容:
function extractJSON() {
$.ajax({
url: "https://api.github.com/users/mralexgray/repos",
dataType: 'json',
success: function(data) {
alert(data.html_url);
return data.html_url;
};
});
// casperjs begins below
casper.start(https://api.github.com/users/mralexgray/repos, function() {
});
casper.then(function() {
var output = this.evaluate(extractJSON());
this.echo(output);
});
casper.run();
感谢您抽出宝贵时间参与本次活动!
可能的解决方案是抓取该站点的整个文本并在 json 中解析它,然后您可以像这样轻松访问 json:
var casper = require('casper').create();
var url = 'https://api.github.com/users/mralexgray/repos';
var text;
var json;
casper.start(url);
casper.then(function() {
text = casper.fetchText('body pre');
json = JSON.parse(text);
});
casper.then(function() {
for (var i=0; i < json.length; i++) {
casper.echo("html_url: " + json[i].html_url);
casper.echo("html_url owner: " + json[i].owner.html_url);
}
});
casper.run();