Как получить все страницы статьи в категории Википедии и ее подкатегориях? - PullRequest
19 голосов
/ 24 апреля 2011

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

Опции, которые мне известны:

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

Пожалуйста, поделитесь своими мыслями

Ответы [ 3 ]

10 голосов
/ 13 июня 2011

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

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

Здесь также доступен API:

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

9 голосов
/ 25 мая 2015

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

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

4 голосов
/ 26 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...