如何(可靠地)从API获取维基百科信息框中使用的主要图像?
这个问题以前已经问过,接受的答案承认这只是一个猜测。随后的答案充其量似乎是一种黑客攻击,并且不会返回正确的图像。
例如,Jimi Hendrix维基百科条目使用"File:Jimi Hendrix 1967.png"
作为InfoBox中的主图像。
更新的答案建议使用此URL,但对于Jimi Hendrix(和其他主题),它经常返回错误的图像。
如果我拉入所有图像,则无法确定哪个是信息框中使用的图像。
每个维基百科页面(例如Jimi Hendrix)都与维基数据项ID(Q5928)相关联。每个维基百科条目的主图像(通常在信息框模板中)由维基数据中的图像(P18)属性保存,您可以通过MediaWiki维基数据API访问它:
https://www.wikidata.org/w/api.php?action=wbgetentities&format=json&sites=enwiki&props=claims&titles=Jimi Hendrix
通过此查询,您将获得维基数据ID和图像名称:
{
...
"id": "Q5928", // Wikidata ID
"claims":{
...
"P18":[{
"mainsnak":{
"datavalue":{
"value":"Jimi Hendrix 1967.png", // The image name
},
},
}],
...
}
}
在这里,我解释了如何使用维基数据ID获取图像URL。