2016-04-23 12 views
2

Как я (надежно) получить основные изображения, используемые в Википедии Infobox из API?Как надежно получить изображение, используемое в Википедии Infobox?

This question has been asked before и принятый ответ допускает, что это всего лишь догадка. Последующие ответы кажутся взломом, в лучшем случае и не возвращают правильное изображение.

Например, запись Википедии Jimi Hendrix использует "File:Jimi Hendrix 1967.png" в качестве основного изображения в InfoBox.

Обновленные ответы предлагают using this url, но для Jimi Hendrix (и других темах) он часто возвращает неправильное изображение.

Если у меня есть pull in all the images, то нет способа определить, какое изображение используется в Инфобоксах.

ответ

3

Каждая страница Википедии (например, Jimi Hendrix) связана с элементом Wikidata (Q5928). Основное изображение для каждой статьи в Википедии (обычно это в шаблоне Infobox) хранится в image (P18) в 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", 
       }, 
      }, 
     }], 
     ... 
    } 
} 

И here я объясню, как получить URL изображения также.

+0

я думаю, что будет работать ... thx! Есть ли в любом случае, чтобы вернуть первый абзац статьи с этим запросом или мне нужно сделать 2 запроса? Я хотел бы сделать меньше вызовов API, если это возможно. –

+0

WikiData - это хранилище фактов, поэтому нет, для этого вам придется запрашивать Wikipedia – leo

+1

@kristen, в этом случае лучше использовать https://stackoverflow.com/questions/35663229/how-to-get- а-короткого сниппет-оф-текст-и-на-Майне-изображения-оф-Википедию-статей-по-а – Termininja