Javascript 从维基百科中提取数据 API
Javascript extract data from Wikipedia API
如何从 WIkipedia 中提取标题(按人口划分的大都市区列表)API(http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?)
我能够从维基百科获取数据,但无法从中提取数据。
function getJSONP(url, success) {
var ud = '_' + +new Date,
script = document.createElement('script'),
head = document.getElementsByTagName('head')[0] || document.documentElement;
window[ud] = function(data) {
head.removeChild(script);
success && success(data);
};
script.src = url.replace('callback=?', 'callback=' + ud);
head.appendChild(script);
}
getJSONP('http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?', function(data){
console.log(data);
document.getElementById("output").innerHTML = data.query;
});
<div id="output">
Want to display article title here.
</div>
下面是控制台中显示的内容。如何提取 "from: "List_of_metropolitan_areas_by_population"" 并显示在 front-end 中?
您试图将 HTML 元素的内容变成 javascript 对象,这就是您看到结果的原因。您想要的是字符串,因此您需要访问对象中会为您提供字符串的部分。
document.getElementById("output").innerHTML = data.query.normalized[0].from;
而不是
document.getElementById("output").innerHTML = data.query;
这里有一个 link 到 fiddle 以配合您的回答:http://jsfiddle.net/zsaj950t/
例如,如果您想要提取 "to: ...",那么只需查看您在控制台中打开的对象。只需在
末尾的 "to" 和 "from" 之间切换
data.query.normalized[0]
修改后的代码:
function(data){
document.getElementById("output").innerHTML = data.query.normalized[0].to
});
如何从 WIkipedia 中提取标题(按人口划分的大都市区列表)API(http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?)
我能够从维基百科获取数据,但无法从中提取数据。
function getJSONP(url, success) {
var ud = '_' + +new Date,
script = document.createElement('script'),
head = document.getElementsByTagName('head')[0] || document.documentElement;
window[ud] = function(data) {
head.removeChild(script);
success && success(data);
};
script.src = url.replace('callback=?', 'callback=' + ud);
head.appendChild(script);
}
getJSONP('http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?', function(data){
console.log(data);
document.getElementById("output").innerHTML = data.query;
});
<div id="output">
Want to display article title here.
</div>
下面是控制台中显示的内容。如何提取 "from: "List_of_metropolitan_areas_by_population"" 并显示在 front-end 中?
您试图将 HTML 元素的内容变成 javascript 对象,这就是您看到结果的原因。您想要的是字符串,因此您需要访问对象中会为您提供字符串的部分。
document.getElementById("output").innerHTML = data.query.normalized[0].from;
而不是
document.getElementById("output").innerHTML = data.query;
这里有一个 link 到 fiddle 以配合您的回答:http://jsfiddle.net/zsaj950t/
例如,如果您想要提取 "to: ...",那么只需查看您在控制台中打开的对象。只需在
末尾的 "to" 和 "from" 之间切换data.query.normalized[0]
修改后的代码:
function(data){
document.getElementById("output").innerHTML = data.query.normalized[0].to
});