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

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

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

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

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

Следующий ресурс поможет вам загрузить все страницы из категории и всех ее подкатегорий:

http://en.wikipedia.org/wiki/Wikipedia:CatScan

Существует также API, доступный здесь:

https://www.mediawiki.org/wiki/API:Categorymembers

Вы можете сделать это с помощью следующих двух методов 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

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

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

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