【问题标题】:How to search images in Wikimedia Commons by API?如何通过 API 在 Wikimedia Commons 中搜索图像?
【发布时间】:2016-05-01 21:26:02
【问题描述】:

我正在尝试从 Wikimedia Commons 查询所有猫的图像(例如)。

我想到的方法是首先搜索此处的 Cat 页面(我不知道如何以编程方式找到它,也许是重定向?):

https://commons.wikimedia.org/wiki/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 的相同搜索也不会返回任何内容。

有谁知道是否有任何简单的方法可以在 Wikimedia Commons 上进行图像搜索,以“Cat”开头,返回 Cat 图像,如果没有什么是最好的?

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

【问题讨论】:

    标签: mediawiki-api wikimedia-commons


    【解决方案1】:

    只需将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 文档)

    【讨论】:

    • 是否还有办法获取每个返回的图像的图像信息?或者您是否必须使用标题为文件的 imageinfo 进行另一个请求?
    • 我注意到重定向到某个类别时失败,例如土豆。你知道如何解决这个烦人的问题吗?
    • 问题是Potato重定向到Category,并且category不包含图片。要获取您需要generator=categorymembers 的类别成员。所以,也许有更好的变体,但在这个阶段我的想法是使用generator=images 发出请求,如果响应为空,则使用generator=categorymembers 创建另一个请求。
    【解决方案2】:

    这里有一个用于 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=' (cats) 参数传递给搜索字符串的?有输入吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多