在wiki commons中检索图像许可证和作者信息

Mei*_*eir 12 wikipedia-api mediawiki-api wikimedia-commons

我正在尝试使用wikimedia API for wiki commons:

http://commons.wikimedia.org/w/api.php
Run Code Online (Sandbox Code Playgroud)

似乎commons API非常不成熟,并且他们的文档中提到检索许可证和作者信息的可能性是空的.

无论如何我可以使用API​​检索包含许可信息的段落吗?(例如,本页标题为"许可"的段落).当然我可以下载整个页面并尝试解析它,但是什么是API?

Phi*_*een 14

迟到的答案,但您可以使用以下查询请求"extmetadata"数据:

http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=json

查看imageinfo.extmetadata.UsageTerms,Artist,Credit等.

  • 这是正确的答案.使用格式jsonfm进行简单验证:http://en.wikipedia.org/w/api.php?action = query&prop = imageinfo&iidrop = extrametadata&titles = File%3AaBrad_Pitt_at_Incirlik2.jpg&format = jsonfm (2认同)

Ilm*_*nen 4

您可以尝试在Wikimedia Toolserver上使用Magnus Manske 的 Commons API 工具。它不是官方服务,并且文档似乎相当稀疏​​(也就是说,几乎不存在),但XML 输出似乎非常不言自明。

我似乎无法在任何地方找到 Magnus 脚本的源代码,但我认为它从文件所属的类别中提取许可信息。如果您愿意,您可以自己执行此操作:只需获取类别列表,并在必要时沿着类别树向上查找,直到找到您识别的许可证类别。唉,树遍历部分需要多个 API 请求或 Commons 类别数据库(工具服务器上的实时访问,或从数据库转储中重建的副本)。

是的,我意识到这个答案可能看起来并不令人满意。事实上,马格努斯的脚本似乎是目前最接近你想要的东西,甚至它被标记为实验性的和不完整的。基本上,这是一个等待有人实施(更好)解决方案的问题。