2013-11-12 1 views
2

Я пытаюсь найти изображение герба Афганистана из Википедии.Как запросить wikipedia api для файла, если название страницы отличается от имени файла?

Что я делаю до сих пор:

Получить инфобокс для Афганистана through here.

и анализировать результат для извлечения:

"image_coat = Герб Afghanistan.svg"

нормально, я по-прежнему с помощью querying the image info here, но эта связь отсутствует реальная URL изображения.

Проблема заключается в том, что касается Афганистана, то изображение вместо фактически "Emblem_of_Afghanistan.svg" из "Coat_of_arms_of_Afghanistan.svg".

Однако this page правильно отображает файл "Emblem_of_Afghanistan.svg".


Так я вроде застрял здесь. Если бы это был только Афганистан, я мог бы вручную исправить его, но эта проблема возникает для многих файлов.

+0

Вы можете улучшить сцепление на webapps.stackexchange.com. Это тот вопрос, на который люди ответили. SO - для написания кода. –

+0

Спасибо, я попробую отправить там. – Sehor06

ответ

4

Причина, по которой настоящий файл File:Emblem_of_Afghanistan.svg, заключается в том, что страница Commons File:Coat of arms of Afghanistan.svg является перенаправлением на File:Emblem of Afghanistan.svg. К сожалению, prop=imageinfo API doesn't currently handle Commons redirects.

Чтобы обойти это, когда это произойдет (вы можете узнать по imagerepository в ответ, но не URL *), вы можете вместо этого запроса API Commons, а также с указанием redirects: http://commons.wikimedia.org/w/api.php?action=query&titles=File:Coat_of_arms_of_Afghanistan.svg&prop=imageinfo&iiprop=url&format=json&redirects

* запросе вы связаны с неправильным, он не имеет префикса File:. Правильный запрос: http://en.wikipedia.org/w/api.php?action=query&titles=File:Coat_of_arms_of_Afghanistan.svg&prop=imageinfo&iiprop=url&format=json

+0

Точно ответ, который я искал! Большое спасибо! – Sehor06

Смежные вопросы