我阅读了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)!
发布于 2012-02-01 14:14:31
嗯,这不是很容易。您不会从Commons:Potd获取任何内容,因为这只是一个重定向,但是即使您从Commons:Picture of the Day获取图像,您也只能得到一个按字母顺序排列的所有图像的巨大列表。
但这里有一个解决方案。首先展开Potd模板,找出当前的镜像名称:
<api>
<expandtemplates xml:space="preserve">20110421 Tbilisi Georgia Panoramic.jpg</expandtemplates>
</api>然后将该文件名(URL编码的)插入到对imageinfo的单独请求中,使用iiprop=url获取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>https://stackoverflow.com/questions/9084442
复制相似问题