4 json wikipedia wikipedia-api wikidata wikidata-api
如何(可靠地)从 API 获取维基百科信息框中使用的主图像?
这个问题之前已经被问过,接受的答案承认这只是一个猜测。随后的答案充其量看起来像是黑客,并且不会返回正确的图像。
例如,吉米·亨德里克斯维基百科条目用作"File:Jimi Hendrix 1967.png"信息框中的主图像。
更新的答案建议使用此网址,但对于吉米·亨德里克斯(和其他主题),它经常返回错误的图像。
如果我拉入所有图像,则无法确定信息框中使用的图像。
每个维基百科页面(例如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。