首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >维基百科API:无法查询当日图片URL

问维基百科API:无法查询当日图片URL
EN

Stack Overflow用户
提问于 2012-02-01 01:52:01
回答 1查看 1.2K关注 0票数 5

我阅读了MediaWiki API documentation,但我找不到如何获取picture of the day的当前URL。

在RTFM之后,我将查询称为from Commons:Potd to its page URL。

它返回pageid=2518149,它是当前的POTD页面。

然后我尝试调用prop=imageinfo,但是我没有找到获取图片地址的方法。

唯一成功的调用是:

http://commons.wikimedia.org/w/api.php?titles=File:POTD&action=query&prop=images

"Successful“表示它返回一个图像URL ...而是一个不同的pageid (不是当前的POTD)!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-01 14:14:31

嗯,这不是很容易。您不会从Commons:Potd获取任何内容,因为这只是一个重定向,但是即使您从Commons:Picture of the Day获取图像,您也只能得到一个按字母顺序排列的所有图像的巨大列表。

但这里有一个解决方案。首先展开Potd模板,找出当前的镜像名称:

http://commons.wikimedia.org/w/api.php?action=expandtemplates&text={{Potd/{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}}}

代码语言:javascript
复制
<api>
  <expandtemplates xml:space="preserve">20110421 Tbilisi Georgia Panoramic.jpg</expandtemplates>
</api>

然后将该文件名(URL编码的)插入到对imageinfo的单独请求中,使用iiprop=url获取URL:

http://commons.wikimedia.org/w/api.php?titles=Image:20110421%20Tbilisi%20Georgia%20Panoramic.jpg&action=query&prop=imageinfo&iiprop=url

就是这样!

图片文件本身可以使用url属性的值来检索:

代码语言:javascript
复制
<api>
  <query>
    <normalized>
      <n from="Image:20110421 Tbilisi Georgia Panoramic.jpg" to="File:20110421 Tbilisi Georgia Panoramic.jpg" />
    </normalized>
    <pages>
      <page pageid="15527584" ns="6" title="File:20110421 Tbilisi Georgia Panoramic.jpg" imagerepository="local">
        <imageinfo>
          <ii url="http://upload.wikimedia.org/wikipedia/commons/a/ae/20110421_Tbilisi_Georgia_Panoramic.jpg" descriptionurl="http://commons.wikimedia.org/wiki/File:20110421_Tbilisi_Georgia_Panoramic.jpg" />
        </imageinfo>
      </page>
    </pages>
  </query>
</api>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9084442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档