3

我在 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 请求中返回所有这些结果。

4

1 回答 1

3

Wikidata 右上角的搜索框使用 wbsearchentities API 模块提供自动建议下拉搜索。

如果您在输入搜索后按 Enter,而不是单击其中一项建议,您最终将进入Special:Search页面。

如您所见,他们的 API 结果不返回任何结果,但特殊页面会返回。

这是因为这些搜索以完全不同的方式工作。

  • Special:Search 页面是 Wikibase 向其提供数据的 MediaWiki 概念。
  • Wikibase 本身提供的 wbsearchentities API 模块。
于 2016-05-14T10:38:12.200 回答