Как искать страницу/категорию на Викискладе по API?

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

Наивно я думал https://commons.wikimedia.org/w/api.php?action=query&list=search&srsearch=Albert%20Einstein подойдет, однако, как видите, он не возвращает нужную мне страницу (Альберт Эйнштейн).

Также есть ли способ ограничить поиск только возвращаемыми категориями? Например: Категория: Альберт Эйнштейн

EDIT: я понял, что хотел, это вернет категории и страницы.

https://commons.wikimedia.org/w/api.php?action=query&generator=search&prop=info&gsrsearch=Albert%20Einstein&gsrnamespace=14|0


person thewormsterror    schedule 25.05.2016    source источник


Ответы (1)


По умолчанию ваш запрос возвращает только 10 результатов, поэтому добавьте srlimit =500 в запросе, и вы увидите Альберта Эйнштейна.

https://commons.wikimedia.org/w/api.php?action=query&list=search&srsearch=Albert%20Einstein&srlimit=500

Чтобы ограничить поиск только возвращаемыми категориями, вам нужно использовать srnamespace=14< /сильный>:

https://commons.wikimedia.org/w/api.php?action=query&list=search&srsearch=Albert%20Einstein&srlimit=500&srnamespace=14
person Termininja    schedule 25.05.2016
comment
На самом деле, я только что понял, что в написанном мною запросе первым результатом был Альберт Эйнштейн. Просто я ожидал идентификатор страницы, вы знаете, как вернуть page_id? Документация по API commons.wikimedia.org/w/ ничего не упоминать. - person thewormsterror; 26.05.2016
comment
Ничего, я разобрался, спасибо за помощь :) - person thewormsterror; 26.05.2016
comment
PageID вы можете получить с помощью генератора: commons.wikimedia.org /ж/ - person Termininja; 26.05.2016