Wikidata API wbsearchentities:为什么Python中的结果与Wikidata中的结果不同?
作者:互联网
我在python请求中使用wbsearchentities(wikidata api),我想知道为什么返回的结果与Wikidata上看到的结果不同.例如,Python中的以下命令:
url = "https://www.wikidata.org/w/api.php?action=wbsearchentities&search=%s&format=json&limit=50&formatversion=2&language=en" % ('New York Landmarks Preservation Commission')
r = requests.post(url,headers={"User-Agent" : "Magic Browser"})
返回任何内容,但在Wikidata的搜索框中进行相同的搜索将返回2个结果(一个是好结果:纽约市地标保存委员会.
理想情况下,我希望从python请求中返回所有这些结果.
解决方法:
Wikidata右上角的搜索框使用wbsearchentities API模块提供自动建议下拉搜索.
如果输入搜索后按Enter键,而不是单击建议之一,则最终将显示在Special:Search页上.
如您所见,API结果返回no results,但返回special page does.
这是由于这些搜索以完全不同的方式工作.
> Special:Search页面是Wikibase提供的MediaWiki概念
数据到.
> Wikibase本身提供的wbsearchentities API模块.
标签:python-requests,wikidata-api,python 来源: https://codeday.me/bug/20191118/2029950.html