我制作了一个使用JSON Google图片搜索API提供图片的Android应用,但我注意到Google已停止支持它了。我还发现维基数据有时会在某些项目上提供图像属性,但我似乎无法使用维基数据API获取图像的URL位置。
有没有办法从维基数据中的项目中获取图片网址属性?
答案 0 :(得分:25)
如果某个维基数据项目(ID: Qxxx )具有image (P18)属性,则可以MediaWiki API访问它:
https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Qxxx&property=P18
回复将包括:
"claims": {
"P18": [{ "mainsnak": { "datavalue": { "value": "img_name.ext" }}}]
}
其中 img_name.ext 是您要查找的图片的名称(所有空格都必须替换为_
)。
最终图片网址为:https://upload.wikimedia.org/wikipedia/commons/a/ab/img_name.ext
,其中 a 和 b 是<{3}}的第一个和第二个字符<强> img_name.ext 强>
例如,对于商品md5sum,API会返回图片名称“ jaguar (Q35694) ”,其中包含md5sum: 21 < / strong> 3b31ec141dafebe457e49bcd7f9329 ,所以a = 2 和b = 1 ,或最终图片网址为:Junior-Jaguar-Belize-Zoo.jpg
答案 1 :(得分:1)
您可以从图像属性(以下示例中的 Sample.png
)构建 URL:
https://commons.wikimedia.org/w/index.php?title=Special:Redirect/file/Sample.png&width=300
有关详细信息,请参阅 Wikimedia Commons 的 "Reusing content outside Wikimedia" documentation。
答案 2 :(得分:0)
花点时间来弄清楚这个。正在讨论的哈希总和不是P18 [0] .mainsnak.hash的值。
您需要进行hashsum(“ Junior-Jaguar-Belize-Zoo.jpg”)。作为名称的字符串(用“ _”替换空格之后。这将为您提供213B31EC141DAFEBE457E49BCD7F9329哈希总和,可用于确定URL。