Как надежно получить изображение, используемое в инфобоксе Википедии?
Как (надежно) получить основные изображения, используемые в информационном блоке Википедии, из API?
Этот вопрос был задан ранее, и принятый ответ признает, что это всего лишь предположение. Последующие ответы кажутся в лучшем случае взломанными и не возвращают правильное изображение.
Например, запись Jimi Hendrix Wikipedia использует "File:Jimi Hendrix 1967.png"
в качестве основного изображения в InfoBox.
Обновленные ответы предлагают использовать этот URL, но для Джими Хендрикса (и других тем) он часто возвращает неправильное изображение.
Если я вытяну все изображения, я не смогу определить, какое изображение используется в Infobox.
1 ответ
Каждая страница Википедии (например, Джими Хендрикс) связана с элементом Викиданных ( Q5928). Основное изображение для каждой статьи Википедии (обычно это в шаблоне Infobox) сохраняется в свойстве image (P18) в Wikidata. Поскольку все параметры шаблонов Wikipedia будут перемещены в Wikidata очень скоро, я предлагаю вам начать использовать 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",
},
},
}],
...
}
}
И здесь я объясняю, как получить URL изображения также.