-->

Wikidata API wbsearchentities: why are results not

2019-02-18 23:15发布

问题:

I'm using wbsearchentities (wikidata api) in a python request and I'm wondering why returned results are not the same that those seen on Wikidata. For example, the following command in 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"})

returns nothing but the same search in the search box of Wikidata returns 2 results (one is the good one: New York City Landmarks Preservation Commission.

Ideally, I would like to have all these results returned from my python request.

回答1:

The search box in the top right of Wikidata uses the wbsearchentities API module to provide the auto suggestion dropdown search.

If you press enter after entering your search instead of clicking on one of the suggestions you will end up on the Special:Search page.

As you can see they API result returns no results but the special page does.

That is due to these searches working in entirely different ways.

  • The Special:Search page is a MediaWiki concept that Wikibase provides data to.
  • The wbsearchentities API module provided by Wikibase itself.