我正在学习维基百科REST API,但我找不到合适的选项来获取搜索查询的网址。
这是请求的网址:
http://it.wikipedia.org/w/api.php?action=query&list=search&srsearch=calvino&format=xml&srprop=snippet
此请求仅输出标题和摘要,但不输出文章的网址。 我已经检查了维基百科API文档中的list = search查询,但似乎没有选项来获取URL。
最诚挚的问候, 法比奥布达
答案 0 :(得分:21)
您可以自己从标题中轻松构建文章的网址。对于意大利语维基百科,它是http://it.wikipedia.org/wiki/
后跟文章的URL-encoded标题。就这么简单。
文章的实际网址也会使用下划线替换空格,但如果您不想这样做则不必这样做,带空格的网址会重定向到带下划线的网址。
编辑:您可以获取该网址,但无法同时获取与搜索相关的信息。为此,请将列表用作generator。例如:
http://it.wikipedia.org/w/api.php?action=query&generator=search&gsrsearch=calvino&format=xml&gsrprop=snippet&prop=info&inprop=url
但我认为改变页面网址的格式是不太可能的:太多其他人依赖它。
答案 1 :(得分:0)
我发现不可能同时检索描述和url,所以我分成两个javascript方法,第一个获取描述,第二个获取url:
function get_wiki_info() {
$.ajax({
url: 'http://it.wikipedia.org/w/api.php',
data: { action: 'query', list: 'search', srsearch: $("input[name=city]").val(), format: 'json' },
dataType: 'jsonp',
success: function (data) {
console.log('wiki', data.query.search[0].snippet);
$('#info-wiki-text').html(data.query.search[0].snippet);
get_wiki_links();
},
fail: function (data) {
$('#info-wiki-text').html("Impossible retrieve information for " + $("input[name=city]").val());
}
});
}
function get_wiki_links() {
$.ajax({
url: 'http://it.wikipedia.org/w/api.php',
data: { action: 'query', generator: 'allpages', search: $("input[name=city]").val(), format: 'json', gapfrom: $("input[name=city]").val(), gapto: $("input[name=city]").val(), prop: 'info', inprop: 'url' },
dataType: 'jsonp',
success: function (data) {
console.log('wiki', data.query.pages);
$.each(data.query.pages, function (key, val) {
$('#wiki-city-link').attr('href', val.fullurl);
});
},
fail: function (data) {
console.log(data);
}
});
}
如果您愿意,可以检索说明:
https://it.wikipedia.org/w/api.php?action=query&list=search&srsearch=Your%20Params&utf8=
检索网址: