dahlia / wikidata

Wikidata client library for Python
https://pypi.org/project/Wikidata/
GNU General Public License v3.0
337 stars 31 forks source link

Is it possible to get the wikidata ID from a Wikipedia article name? #23

Closed youssefavx closed 4 years ago

youssefavx commented 4 years ago

e.g. something like this:

id = client.get_id('Physics')
id = 'Q2902'
dahlia commented 4 years ago

This project does not directly cover Wikipedia, but you can use Wikipedia API to find a Wikidata ID:

https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=Physics

>>> import json
>>> from urllib.parse import quote
>>> from urllib.request import urlopen
>>> title = 'Physics'
>>> url = f'https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=json&titles={quote(title)}'
>>> r = urlopen(url)
>>> pages = json.load(r)
>>> r.close()
>>> page, = pages['query']['pages'].values()
>>> wikibase_item = page['pageprops']['wikibase_item']
>>> wikibase_item
'Q413'