从wikimedia commons获取缩略图

use*_*412 5 thumbnails wikipedia-api

我确实有来自wikimedia commons的文件名,我想直接访问缩略图.

示例: Tour_Eiffel_Wikimedia_Commons.jpg

我找到了一种方法来获取包含我想要的缩略图的网址的json数据:

https://en.wikipedia.org/w/api.php?action=query&titles=Image:Tour_Eiffel_Wikimedia_Commons.jpg&prop=imageinfo&iiprop=url&iiurlwidth=200
Run Code Online (Sandbox Code Playgroud)

但我不想要另一个请求.有没有办法直接访问缩略图?

svi*_*ick 7

如果你可以依赖这样一个事实,那么构建URL的当前方式将来不会改变(这是不可保证的),那么你就可以做到.

URL如下所示:

https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg/200px-Tour_Eiffel_Wikimedia_Commons.jpg

  • 第一部分总是一样的: https://upload.wikimedia.org/wikipedia/commons/thumb
  • 第二部分是文件名的MD5哈希的第一个字符.在这种情况下,MD5哈希Tour_Eiffel_Wikimedia_Commons.jpga85d416ee427dfaee44b9248229a9cdd,所以我们得到/a.
  • 第三部分是上面MD5哈希的前两个字符:/a8.
  • 第四部分是文件名: /Tour_Eiffel_Wikimedia_Commons.jpg
  • 最后一部分是所需的缩略图宽度,再次是文件名: /200px-Tour_Eiffel_Wikimedia_Commons.jpg

  • 我喜欢它!谢谢! (2认同)
  • @svick 感谢您的回答 - 它让我走了很长的路。不过,重要的是:md5 哈希是在用下划线替换文件名中的所有空格后计算的 (2认同)