如何检查维基百科上是否存在某个人?
How to check if a person exists on Wikipedia?
所以我需要一个函数。一个示例输入就像 "donald trump" (我不希望它区分大小写)
如果维基百科上存在关于此人的文章,功能 returns 摘要和图片。如果不是 returns 错误
这可能吗?我想不出正确的 API 调用。
我试过维基数据API。它 returns 一些输入的多个对象,我不知道如何重定向它。
我创建了 simple repo。
您可以查看它在 GitHub Page 上的工作方式。
这是搜索功能:
$('#search').click(function (e) {
articles1.empty();
var search = $('#person').val();
console.log(search);
var query = 'SELECT distinct ?image ?item ?itemLabel ?itemDescription ?DR ?RIP WHERE {?item wdt:P31 wd:Q5. ?item ?label "' + search + '"@en. OPTIONAL{?item wdt:P569 ?DR .} OPTIONAL{?item wdt:P570 ?RIP .} OPTIONAL{?item wdt:P18 ?image .} SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } }';
console.log(query);
var queryUrl = encodeURI(url + "?query=" + query);
$.ajax({
dataType: "json",
url: queryUrl,
success: function (data) {
var results = data.results.bindings;
if (results.length > 0) {
console.log(results);
console.log(results[0].itemLabel.value);
console.log(results[0].DR);
console.log(results[0].RIP);
for (var i = 0; i < results.length; i++) {
if (typeof (results[i].image) != 'undefined') {
var image = '<img class="inline" src=' + results[i].image.value + ' height="100">';
articles1.append(image);
articles1.append('<br>');
}
articles1.append(results[i].itemLabel.value);
articles1.append('<br>');
if (typeof (results[i].DR) != 'undefined') {
var dr = new Date(results[i].DR.value);
articles1.append(dr.getFullYear());
if (typeof (results[i].RIP) != 'undefined') {
var rip = new Date(results[i].RIP.value);
articles1.append(' - ');
articles1.append(rip.getFullYear());
}
articles1.append('<br>');
}
if (typeof (results[i].itemDescription) != 'undefined') {
articles1.append(results[i].itemDescription.value);
}
articles1.append('<br><br>');
}
}
else {
articles1.append("Sorry, no results");
}
},
error: function (textStatus, errorThrown) {
articles1.append("Sorry, no service");
},
timeout: 3000
});
})
所以我需要一个函数。一个示例输入就像 "donald trump" (我不希望它区分大小写) 如果维基百科上存在关于此人的文章,功能 returns 摘要和图片。如果不是 returns 错误 这可能吗?我想不出正确的 API 调用。
我试过维基数据API。它 returns 一些输入的多个对象,我不知道如何重定向它。
我创建了 simple repo。
您可以查看它在 GitHub Page 上的工作方式。
这是搜索功能:
$('#search').click(function (e) {
articles1.empty();
var search = $('#person').val();
console.log(search);
var query = 'SELECT distinct ?image ?item ?itemLabel ?itemDescription ?DR ?RIP WHERE {?item wdt:P31 wd:Q5. ?item ?label "' + search + '"@en. OPTIONAL{?item wdt:P569 ?DR .} OPTIONAL{?item wdt:P570 ?RIP .} OPTIONAL{?item wdt:P18 ?image .} SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } }';
console.log(query);
var queryUrl = encodeURI(url + "?query=" + query);
$.ajax({
dataType: "json",
url: queryUrl,
success: function (data) {
var results = data.results.bindings;
if (results.length > 0) {
console.log(results);
console.log(results[0].itemLabel.value);
console.log(results[0].DR);
console.log(results[0].RIP);
for (var i = 0; i < results.length; i++) {
if (typeof (results[i].image) != 'undefined') {
var image = '<img class="inline" src=' + results[i].image.value + ' height="100">';
articles1.append(image);
articles1.append('<br>');
}
articles1.append(results[i].itemLabel.value);
articles1.append('<br>');
if (typeof (results[i].DR) != 'undefined') {
var dr = new Date(results[i].DR.value);
articles1.append(dr.getFullYear());
if (typeof (results[i].RIP) != 'undefined') {
var rip = new Date(results[i].RIP.value);
articles1.append(' - ');
articles1.append(rip.getFullYear());
}
articles1.append('<br>');
}
if (typeof (results[i].itemDescription) != 'undefined') {
articles1.append(results[i].itemDescription.value);
}
articles1.append('<br><br>');
}
}
else {
articles1.append("Sorry, no results");
}
},
error: function (textStatus, errorThrown) {
articles1.append("Sorry, no service");
},
timeout: 3000
});
})