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

Mas*_*imo 5 mediawiki-api wikimedia-commons

我阅读了MediaWiki API文档 但我找不到如何获取当天图片的当前URL .

在RTFM之后,我将Commons:Potd中的查询调用 到其页面URL.

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

然后我尝试打电话prop=imageinfo,但我找不到获取图片网址的方法.

唯一成功的电话是这样的:

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

"成功"意味着它返回一个图像URL ...但是不同pageid(不是当前的POTD)!

jpa*_*kal 6

嗯,这不是很容易.你没有得到任何回报,Commons:Potd因为这只是一个重定向,但即使你从中获取图像Commons:Picture of the Day,你只需按字母顺序获得所有图像的大量列表.

但这是一个解决方案.首先展开Potd模板以找出当前图像名称:

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

<api>
  <expandtemplates xml:space="preserve">20110421 Tbilisi Georgia Panoramic.jpg</expandtemplates>
</api>
Run Code Online (Sandbox Code Playgroud)

然后将该文件名(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属性的值检索图片文件本身:

<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>
Run Code Online (Sandbox Code Playgroud)