2011-09-17 4 views
12

Я пытаюсь использовать Викимедиа API для вики достояния по адресу:Получения и автор в вики достоянию

http://commons.wikimedia.org/w/api.php 

Похоже, что достоянию API является очень незрелым и частями в их document that mentions the possibility для извлечения лицензии и информация автора пуста.

Есть ли в любом случае я могу получить абзац, содержащий информацию о лицензировании с использованием API? (Например, абзац под заголовком «Лицензирование» at this page). Конечно, я могу загрузить всю страницу и попробовать ее разобрать, но для чего нужны API?

ответ

3

Вы можете использовать Magnus Manske's Commons API tool на Wikimedia Toolserver. Это не официальный сервис, и документация выглядит довольно скудной (то есть почти несуществующей), но XML output кажется довольно понятной.

Я не могу найти источник сценария Магнуса где-нибудь, но я предполагаю, что он извлекает информацию о лицензировании из файла categories, к которому принадлежит файл. Если вы хотите, вы можете сделать это сами: просто выберите список категорий и, если необходимо, поднимитесь к дереву категорий, пока не найдете license category, который вы узнаете. Увы, для древовидной части требуется либо несколько запросов API, либо база данных категорий Commons (либо прямой доступ на сервере Toolserver, либо реконструированная копия из database dumps).

Да, я понимаю, что этот ответ может показаться неудовлетворительным. Дело в том, что сценарий Магнуса, по-видимому, является самым близким в настоящее время к тому, что вы хотите, и даже он обозначен как экспериментальный и неполный. В принципе, это проблема, ожидающая, когда кто-то сможет реализовать (лучшее) решение.

+0

Похоже, что инструмент не работает, может ли кто-нибудь подтвердить это? – user5950

+0

@ user5950: Да, похоже, для меня тоже. –

+0

Итак, если кто-нибудь узнает о хорошей альтернативе, сообщите нам об этом! – user5950

1

Я использовал Magnus' Commons API tool. Он не предназначен для простого удаления в проект, но если вы скопируете источник вики-страницы, он вызывает и кэширует его локально, а затем переводит логику в класс, который вы можете сделать более легко вызываемым. Here's the source for Magnus' version. Если вы хотите, чтобы класс, который я создал из него, дайте мне знать, и я его выкопаю.

-3

см: http://www.mediawiki.org/wiki/API:Meta

Вы можете использовать Еогеасп изображение тега «мета = siteinfo» и тега «siprop = rightsinfo» (siprop является опора на siteinfo) Тогда вы увидите rightsinfo из картина.

В вашем случае Брэдом Питтом это было бы как:

http://en.wikipedia.org/w/api.php?format=jsonfm&action=query&titles=File:Brad_Pitt_at_Incirlik2.jpg&prop=imageinfo&iiprop=url&meta=siteinfo&siprop=rightsinfo

+0

Неправильное использование. «siteinfo» дает информацию о сайте, а не об изображении. Например, если вы посмотрите на страницу [File: Flag_of_the_United_Kingdom.svg] (http://en.wikipedia.org/wiki/File:Flag_of_the_United_Kingdom.svg), вы увидите, что она лицензирована как Public Domain. Однако использование этого файла в предоставленном вами запросе показывает, что страница (а не изображение) лицензируется как Creative Commons. Он не дает информации об изображении. – ishmael

+0

ОК, они я ошибаюсь. – Bvbever

+0

Bvbever правильный, это не работает для изображений. –

1

От http://www.mediawiki.org/wiki/API_talk:Main_page#Image_license_information Есть ли способ, чтобы получить лицензию изображения через API? По категории, вероятно, проще всего, если сайт классифицируется по лицензии. Для получения информации о лицензии нет встроенного модуля. Splarka 08:45, 22 января 2010 (UTC)

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

13

поздний ответ, но вы можете запросить данные "extmetadata" с помощью следующего запроса:

http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=json

Посмотрите под imageinfo.extmetadata.UsageTerms, Artist, Credit и т. Д.

+2

Это правильный ответ. Используйте формат jsonfm для простой проверки: http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=jsonfm –

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

  • Нет связанных вопросов^_^