我制作了一个使用 JSON Google 图像搜索 API 来提供图像的 Android 应用程序,但我注意到 Google 已停止支持它。我还发现维基数据有时会在某些项目上提供图像属性,但我似乎无法使用维基数据 API 获取图像的 URL 位置。
有没有办法从维基数据中的项目中获取图像 URL 属性?
最佳答案
如果某些维基数据条目(ID:Qxxx)有image (P18)属性,您可以通过 MediaWiki API 访问它:
https://www.wikidata.org/w/api.php?action=wbgetclaims&property=P18&entity=Qxxx
响应将包括:
"claims": {
"P18": [{ "mainsnak": { "datavalue": { "value": "img_name.ext" }, "hash": ... }}]
}
其中 img_name.ext 是您要查找的图像的名称。
最终图像 URL 将是:https://upload.wikimedia.org/wikipedia/commons/a/ab/img_name.ext
,其中 a 和 < strong>b 是 MD5 hashsum 的第一个和第二个字符img_name.ext(所有空格都替换为 _
)。
示例:对于商品 jaguar (Q35694) API 将返回图像名称“ Junior-Jaguar-Belize-Zoo.jpg ”,它具有 MD5 hashsum("Junior-Jaguar-Belize-Zoo.jpg")
= 213b31ec141dafebe457e49bcd7f9329
,所以 a=2 和 b=1,或者最终图像 URL 将是:https://upload.wikimedia.org/wikipedia/commons/2/21/Junior-Jaguar-Belize-Zoo.jpg
注意: MD5 哈希值用于图像文件的名称,而不是 JSON 正文中包含的 P18[0].mainsnak.hash
属性.
关于java - 如何通过 API 从维基数据项中获取图像 URL 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393884/