如何可靠地获取维基百科信息框中使用的图像?

时间:2016-04-23 16:25:23

标签: json wikipedia wikipedia-api wikidata wikidata-api

如何(可靠地)从API获取维基百科信息框中使用的主要图像?

This question has been asked before并且接受的答案承认这只是猜测。后续的答案看起来像是一个黑客,充其量并且不会返回正确的图像。

例如,Jimi Hendrix维基百科条目使用"File:Jimi Hendrix 1967.png"作为InfoBox中的主要图像。

更新后的答案显示using this url,但对于Jimi Hendrix(以及其他主题),它通常会返回错误的图像。

如果我pull in all the images,则无法确定信息框中使用的图像。

1 个答案:

答案 0 :(得分:3)

每个维基百科页面(例如Jimi Hendrix)都与维基数据项目(Q5928)相关联。每篇维基百科文章(通常在Infobox模板中)的主要图像由维基数据中的image (P18)属性保存。因为所有维基百科模板参数很快就会转移到维基数据,我建议你开始使用MediaWiki Wikidata API

https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&sites=enwiki&props=claims&titles=Jimi Hendrix

使用此查询,您还将获得许多其他信息,但主要文章图片名称为:

{
    ...
    "claims":{
        ...
        "P18":[{
            "mainsnak":{
                "datavalue":{
                    "value":"Jimi Hendrix 1967.png",
                },
            },
        }],
        ...
    }
}

here我还解释了如何获取图片网址。