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

标签 json wikipedia wikipedia-api wikidata wikidata-api

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

This question has been asked before 和接受的答案承认这只是一个猜测。随后的答案似乎是一种黑客攻击,充其量也不会返回正确的图像。

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

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

如果我 pull in all the images 没有办法确定哪个是信息框中使用的图像。

最佳答案

每个维基百科页面(例如 Jimi Hendrix )都与一个维基数据项( Q5928 )相关联。每个维基百科文章的主图像(通常在信息框模板中)由维基数据中的 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 我也解释了如何获取图像 URL。

关于json - 如何可靠地获取维基百科信息框中使用的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36813352/

相关文章:

javascript - 将某个单词(或单词序列)的每次出现自动超链接到预定义的 URL(无歧义);但不显示完整网址

java - 如何使用 Wikipedia API 提取/解析我要查找的链接?

wikipedia-api - 寻找可以给我他们的 XML 文章的维基百科 api

javascript - 按顺序将数组值附加到多个 div

javascript - jquery 从 2 个 json 字符串构建一个复选框表单

python - 并发 Python 维基百科包请求

javascript - 如何使用维基百科的 URL 获取维基百科内容?

wikipedia - 如何获取包含某些类型内容表的维基百科页面列表?

javascript - 将按钮值传递给模态中的 Url.Action

javascript - jQuery 作为临时 polyfill