我制作了一个使用 JSON Google 图像搜索 API 来提供图像的 android 应用程序,但我注意到 Google 已经停止支持它。我还发现 Wikidata 有时会在某些项目上提供图像属性,但是我似乎无法使用 Wikidata API 获取图像的 URL 位置。
有没有办法从 Wikidata 中的项目中获取图像 URL 属性?
我制作了一个使用 JSON Google 图像搜索 API 来提供图像的 android 应用程序,但我注意到 Google 已经停止支持它。我还发现 Wikidata 有时会在某些项目上提供图像属性,但是我似乎无法使用 Wikidata API 获取图像的 URL 位置。
有没有办法从 Wikidata 中的项目中获取图像 URL 属性?
如果某些 Wikidata 项目(ID:Qxxx)具有图像(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和b是img_name.ext的MD5 哈希和的第一个和第二个字符(所有空格都替换为)。_
示例:对于项目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 哈希和是图像文件的名称,而不是P18[0].mainsnak.hash
JSON 正文中包含的属性。
您可以从 image 属性构建 URL(Sample.png
在以下示例中):
https://commons.wikimedia.org/w/index.php?title=Special:Redirect/file/Sample.png&width=300
有关详细信息,请参阅 Wikimedia Commons 的“在 Wikimedia 之外重用内容”文档。