Как получить информацию об изображении Викимедиа? - PullRequest
1 голос
/ 09 сентября 2011

Я пытаюсь получить изображения из Викимедиа, используя существующий API, но, похоже, нет логики в том, что работает, а что нет.

Вот что я делаю / пробовал:

Я получаю запрос изображений с этого URL.

http://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&format=xml&ailimit=10&aifrom=jura

Возвращает фид XML, из которого я получаю имена изображений и URL:

<img name="Jura.PNG" url="http://upload.wikimedia.org/wikipedia/en/a/ad/Jura.PNG" descriptionurl="http://en.wikipedia.org/wiki/File:Jura.PNG"/>

Затем, чтобы получить информацию, такую ​​как загрузчик и лицензия, я использую этот инструмент, как указано в Викимедиа:

http://toolserver.org/~magnus/commonsapi.php

Требуется параметр ?image=, за которым следует имя файла. Jura.PNG из примера xml, работает нормально. Тем не менее, большинство других я пытаюсь просто вернуть <error>File does not exist</error>. Я проверял, файлы do существуют. Я не могу понять, почему один файл работает, а другой нет.

Для тестирования работает еще один Calumma_tarzan_01.jpg.

Кто-нибудь знает, что я делаю не так?


Не рабочие примеры:

Jurassic.jpg
Juramento_de_la_Primera_Junta.jpg
JuraDolois_logo.jpg

Используется php код:

$xml_link = "http://en.wikipedia.org/w/api.php?action=query&list=allimages&aiprop=url&format=xml&ailimit=10&aifrom=".$search_term;
$xml = simplexml_load_file( $xml_link );
$xml_link_data = "http://toolserver.org/~magnus/commonsapi.php?image=".$imgname;
$xml_data = simplexml_load_file( $xml_link_data );
var_dump($xml_data->licenses->license);

для примера Jura.PNG правильный объект сбрасывается, но, поскольку другие URL не имеют лицензионной части, результат, очевидно, равен NULL. Однако я думаю, что проблема не в этом, поскольку ручной ввод URL-адреса в браузере также не возвращает результатов.

1 Ответ

1 голос
/ 09 сентября 2011

Wikimedia Commons - это хранилище бесплатных изображений, которые использует Википедия.Он в основном используется для обмена изображениями между национальными мутациями Википедии.

Многие изображения в английской Википедии используются под добросовестным использованием .Они не бесплатны, поэтому их нельзя ставить на Commons.

Обнаруженный вами инструмент работает только с изображениями из Commons (как следует из его названия), поэтому его нельзя использовать для изображений, которыеразмещено в английской (или любой другой) википедии.

...