【发布时间】:2015-03-21 05:24:19
【问题描述】:
我们如何使用 pywikibot 获取 Wikidata 属性(例如:P31)的人类可读的属性描述?
【问题讨论】:
-
查看mediawiki.org/wiki/Manual:Pywikibot/Wikidata 了解将 Pywikibot 与 Wikidata 结合使用的一般介绍。
标签: wikidata wikidata-api pywikibot
我们如何使用 pywikibot 获取 Wikidata 属性(例如:P31)的人类可读的属性描述?
【问题讨论】:
标签: wikidata wikidata-api pywikibot
您可以将action=wbgetentities 用于属性,就像使用普通项目一样。
要获取P31 的所有人类可读描述:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=P31
并将结果限制为一种语言(英语):
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=P31&languages=en
仅将 pywikibot 用于该任务似乎有点矫枉过正(pywikibot 是一个用于构建进行大规模编辑等的机器人的框架,主要在 Wikipedia 上)。我不确定这是否可能。
还有其他更轻量级的框架,例如wikitools。使用 wikitools,您可以执行以下操作:
from wikitools import Wiki, APIRequest
pid = "P31"
endpoint = "http://commons.wikimedia.org/w/api.php"
username = "XXX"
password = "XXX"
site = Wiki(endpoint, username, password)
params = {'action':'wbgetentities', 'ids': pid}
request = APIRequest(site, params)
result = request.query()
print result["entities"][pid]["descriptions"]
【讨论】: