В настоящее время я пытаюсь найти все страницы, где изображения / медиа из определенной категории используются в Wikimedia Commons.
Используя API, я могу без проблем перечислять все изображения, но я изо всех сил стараюсь добавить запрос на все страницы, где используются элементы.
Вот пример категории только с двумя медиа изображениями
https://commons.wikimedia.org/wiki/Category:Automobiles
Вот вызов API, который я использую
https://commons.wikimedia.org/w/api.php?action=query&prop=images&format=json&generator=categorymembers&gcmtitle=Category%3AAutomobiles&gcmprop=title&gcmnamespace=6&gcmlimit=200&gcmsort=sortkey
Долгосрочная цель — найти все страницы, на которых появляются изображения из наших коллекций, а затем получить все теги с этих страниц об изображениях. Затем мы можем использовать это для расширения нашего архива информации об этих изображениях и, будем надеяться, использовали связанные данные, чтобы найти релевантные изображения, о которых мы, возможно, не знаем из DBpedia.
Возможно, мне придется сделать два запроса, сначала получить изображения, а затем запросить информацию о каждой странице, но я надеялся сделать все это за один вызов.
Предполагая, что вы не нужно перейти в подкатегории, вы можете просто использовать prop=globalusage
запрос с generator=categorymembers
, например как это:
Вывод в формате JSON будет выглядеть примерно так:
// ...snip...
"6197351": {
"pageid": 6197351,
"ns": 6,
"title": "File:-Bundesarchiv Bild 183-1987-1225-004, Schwerin, Thronsaal-demo.jpg",
"globalusage": [
{
"title": "Wikipedia:Fotowerkstatt/Archiv/2009/M\u00e4rz",
"wiki": "de.wikipedia.org",
"url": "https://de.wikipedia.org/wiki/Wikipedia:Fotowerkstatt/Archiv/2009/M%C3%A4rz"}
]
},
"6428927": {
"pageid": 6428927,
"ns": 6,
"title": "File:-Fernsehstudio-Journalistengespraech-crop.jpg",
"globalusage": [
{
"title": "Kurt_von_Gleichen-Ru\u00dfwurm",
"wiki": "de.wikipedia.org",
"url": "https://de.wikipedia.org/wiki/Kurt_von_Gleichen-Ru%C3%9Fwurm"},
{
"title": "Wikipedia:Fotowerkstatt/Archiv/2009/April",
"wiki": "de.wikipedia.org",
"url": "https://de.wikipedia.org/wiki/Wikipedia:Fotowerkstatt/Archiv/2009/April"}
]
},
// ...snip...
Обратите внимание, что вам, скорее всего, придется иметь дело с продолжение запроса, поскольку может легко быть больше результатов, чем MediaWiki вернет в одном запросе. См. Связанную страницу для получения дополнительной информации об их обработке (или просто используйте клиент MW API, который обрабатывает их для вас).
Я не понимаю ваш вариант использования («наши коллекции»?), Поэтому я не знаю, почему вы хотите использовать API напрямую, но если вы хотите изучать категории, вам придется много переосмысливать.
Большинство людей используют инструменты, созданные Магнусом Манске, создателем MediaWiki: в данном случае это GLAMourous. Пример с 3 уровнями рекурсии (находит 186 тыс. Изображений, 114 тыс. Использований): https://tools.wmflabs.org/glamtools/glamorous.php?doit=1&категория = Автомобили&use_globalusage = 1&Глубина = 3
Результаты также могут быть загружены в формате XML, так что это машиночитаемый.