如何通过API在维基共享资源中搜索图像?

12

我想从维基共享资源中查询所有猫的图片(以猫为例)。

我考虑的方法是首先搜索这里的Felis_silvestris_catus页面(我不知道如何通过程序找到这个页面,也许是重定向?):

因此,要获取这些图片,我只需要执行以下操作:

https://commons.wikimedia.org/w/api.php?action=query&prop=images&imlimit=500&titles=Felis_silvestris_catus

这将返回我想要的内容。但是,即使Cat重定向到Felis_silvestris_catus,但同样搜索Cat却无法返回任何内容。

有没有人知道是否有简单的方法可以在维基共享资源上进行图像搜索,仅使用“Cat”作为起点就可以返回Cat图像,如果没有,那么最好怎么办?

我已经查看了API几个小时,但似乎无法弄清楚。

2个回答

13

只需在您的请求中添加redirects = 1即可。

https://commons.wikimedia.org/w/api.php?action=query&prop=images&imlimit=500&redirects=1&titles=Cat

更新:要获取每个返回的图像的图像信息,请使用带有generator=imagesprop=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文档以了解所有属性)


1
有没有办法获取每个返回的图像的图像信息?还是必须使用imageinfo进行另一个请求,其中标题是文件名? - thewormsterror
我注意到在重定向到类别时会出现错误,例如对于土豆。你有什么办法来解决这个烦人的问题吗? - thewormsterror
1
问题在于“Potato”重定向到“Category”,而“categories”不包含图片。要获取类别的成员,你需要使用generator=categorymembers。因此,也许有更好的方法,但在这个阶段,我的想法是进行一个generator=images请求,如果响应为空,则创建另一个generator=categorymembers请求。 - Termininja

0
这是一个与WikiCommons相关的jQuery API和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

他是如何将“titles =”(猫)参数传递给搜索字符串的?使用输入吗? - Grashopper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接