4

我如何(可靠地)从 API 获取 Wikipedia Infobox 中使用的主图像?

之前已经提出过这个问题,并且接受的答案承认这只是一个猜测。随后的答案似乎是一个黑客,充其量是不返回正确的图像。

例如,Jimi Hendrix Wikipedia 条目"File:Jimi Hendrix 1967.png"用作 InfoBox 中的主图像。

更新后的答案建议使用此网址,但对于 Jimi Hendrix(和其他主题),它经常返回错误的图像。

如果我拉入所有图像,则无法确定信息框中使用的是哪个图像。

4

1 回答 1

5

每个 Wikipedia 页面(例如Jimi Hendrix)都与一个 Wikidata 项(Q5928)相关联。每个 Wikipedia 文章的主图像(通常在 Infobox 模板中)由Wikidata 中的image (P18)属性保存。因为所有维基百科模板参数都将很快移至维基数据,我建议您开始使用MediaWiki 维基数据 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",
                },
            },
        }],
        ...
    }
}

在这里,我还解释了如何获取图像 URL。

于 2016-04-23T17:30:58.247 回答