Как получить все страницы статей в разделе Википедии и его подкатегориях?

Я хочу получить все названия статей под категорией и ее подкатегориями.

Параметры, о которых я знаю:

  • Использование API Википедии. Имеет ли такой вариант?
  • d/l дамп. Какой формат будет лучше для моего использования?
  • Существует также возможность искать в Википедии что-то вроде incategory:"music", но я не видел возможности просмотреть это в XML.

Поделитесь своими мыслями

Ответы

Ответ 2

Вы можете сделать это с помощью следующих двух методов API:

Для статей для этой категории

YOUR_URL/api.php?action=query&format=json&list=categorymembers&cmtitle=Category:Music

Для получения подкатегорий:

YOUR_URL/api.php?action=query&format=json&list=categorymembers&cmtype=subcat&cmtitle=Category:Music

Вы можете получить дополнительную информацию по API Mediawiki

Ответ 3

Обратите внимание, что система категоризации Википедии не является деревом или даже ациклическим графом. Вполне возможно, что, непрерывно следуя ссылкам подкатегории, вы, в конце концов, вернетесь туда, где вы начали.

Если вы собираетесь делать много таких запросов, вам лучше всего будет обслуживать загрузку базы данных. Если это будет редкость и будет иметь дело только с небольшими категориями, вы, вероятно, можете избежать повторных запросов list=categorymembers.

incategory:"music" не выполняет поиск подкатегорий.