如何通过 API 在维基共享资源中搜索图像?
How to search images in Wikimedia Commons by API?
我正在尝试从 Wikimedia Commons 查询所有猫的图像(作为示例)。
我考虑的方法是首先搜索此处的 Cat 页面(我不知道如何以编程方式找到它,也许是重定向?):
https://commons.wikimedia.org/wiki/Felis_silvestris_catus
因此要获取图像,我只需要这样做:
这 return 我想要的。然而,即使 Cat 重定向到 Felis_silvestris_catus.
,对 Cat return 的相同搜索也没有任何结果
有谁知道是否有任何简单的方法可以在 Wikimedia Commons 上搜索以 "Cat" 开头的图像,这将 return 猫图像,如果没有最好的方法完成了吗?
我已经查看 API 几个小时了,但我似乎无法理解。
只需在您的请求中添加 redirects=1
。
https://commons.wikimedia.org/w/api.php?action=query&prop=images&imlimit=500&redirects=1&titles=Cat
更新: 要获取每个返回图像的图像信息,请使用查询 generator=images
and prop=imageinfo
:
https://commons.wikimedia.org/w/api.php?action=query&generator=images&prop=imageinfo&gimlimit=500&redirects=1&titles=Cat&iiprop=timestamp|user|userid|comment|canonicaltitle|url|size|dimensions|sha1|mime|thumbmime|mediatype|bitdepth
其中 iiprop
包括一些 imageinfo 属性(检查 API 所有属性的文档)
这里有一个 jQuery API 和 WikiCommons 的 GUI:
https://github.com/genolve/wikimedia-api-gui
如果不需要 GUI 部分,直接调用底层函数很容易。尝试
getThumbsForPage() - Get the thumbnail (and full image URL) for ARRAY of PAGES
//then in the callback tap into
infoA[ii].thumburl
infoA[ii].url
我正在尝试从 Wikimedia Commons 查询所有猫的图像(作为示例)。
我考虑的方法是首先搜索此处的 Cat 页面(我不知道如何以编程方式找到它,也许是重定向?):
https://commons.wikimedia.org/wiki/Felis_silvestris_catus
因此要获取图像,我只需要这样做:
这 return 我想要的。然而,即使 Cat 重定向到 Felis_silvestris_catus.
,对 Cat return 的相同搜索也没有任何结果有谁知道是否有任何简单的方法可以在 Wikimedia Commons 上搜索以 "Cat" 开头的图像,这将 return 猫图像,如果没有最好的方法完成了吗?
我已经查看 API 几个小时了,但我似乎无法理解。
只需在您的请求中添加 redirects=1
。
https://commons.wikimedia.org/w/api.php?action=query&prop=images&imlimit=500&redirects=1&titles=Cat
更新: 要获取每个返回图像的图像信息,请使用查询 generator=images
and prop=imageinfo
:
https://commons.wikimedia.org/w/api.php?action=query&generator=images&prop=imageinfo&gimlimit=500&redirects=1&titles=Cat&iiprop=timestamp|user|userid|comment|canonicaltitle|url|size|dimensions|sha1|mime|thumbmime|mediatype|bitdepth
其中 iiprop
包括一些 imageinfo 属性(检查 API 所有属性的文档)
这里有一个 jQuery API 和 WikiCommons 的 GUI: https://github.com/genolve/wikimedia-api-gui 如果不需要 GUI 部分,直接调用底层函数很容易。尝试
getThumbsForPage() - Get the thumbnail (and full image URL) for ARRAY of PAGES
//then in the callback tap into
infoA[ii].thumburl
infoA[ii].url