Как надежно получить изображение, используемое в инфобоксе Википедии?

Как (надежно) получить основные изображения, используемые в информационном блоке Википедии, из 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 изображения также.

Другие вопросы по тегам