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

4 json wikipedia wikipedia-api wikidata wikidata-api

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

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

例如,吉米·亨德里克斯维基百科条目用作"File:Jimi Hendrix 1967.png"信息框中的主图像。

更新的答案建议使用此网址,但对于吉米·亨德里克斯(和其他主题),它经常返回错误的图像。

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

Ter*_*nja 5

每个维基百科页面(例如Jimi Hendrix )都与一个维基数据项 ID ( Q5928 )相关联。每篇维基百科文章的主图像(通常在 Infobox 模板中)由维基数据中的图像 (P18)属性保存,您可以通过MediaWiki Wikidata API访问它:

https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&sites=enwiki&props=claims&titles=Jimi Hendrix
Run Code Online (Sandbox Code Playgroud)

通过此查询,您将获得维基数据 ID 和图像名称:

{
    ...
    "id": "Q5928", // Wikidata ID
    "claims":{
        ...
        "P18":[{
            "mainsnak":{
                "datavalue":{
                    "value":"Jimi Hendrix 1967.png", // The image name
                },
            },
        }],
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我解释了如何使用 Wikidata ID 来获取图像 URL。