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

发布于 2025-01-01 07:10:16 字数 831 浏览 0 评论 0原文

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

在 RTFM 之后,我调用查询 从 Commons:Potd 到它的页面 URL

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

然后我尝试调用prop=imageinfo,但我没有找到获取图像URL的方法。

唯一成功的调用是:

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

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

I read the MediaWiki API documentation
but I cannot find how to get the current URL of the
picture of the day.

Following RTFM, I call the query
from Commons:Potd to its page URL.

It returns pageid=2518149, it is the current POTD page.

Then I try to call prop=imageinfo, but I didn't find the way to get the image URL.

The only successful call is this:

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

"Successful" means it returns an image URL ... but of a different pageid (not the current POTD)!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年 2025-01-08 07:10:16

嗯,这并不容易。您不会从 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>

将该文件名(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>

Hmm, this isn't very easy. You're not getting anything back from Commons:Potd because that's just a redirect, but even if you fetch images from Commons:Picture of the Day, you just get a huge list of all images ever in alphabetical order.

But here's one solution. First expand the Potd template to figure out the current image name:

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>

Then plug that filename (URL-encoded) into a separate request to imageinfo, with iiprop=url to get the URL:

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

And there it is!
The picture file itself can be retrieved using the value of the url attribute:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文