编程语言
首页 > 编程语言> > Wikidata API wbsearchentities:为什么Python中的结果与Wikidata中的结果不同?

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