API MediaWiki: получить все страницы в подсписках списков в Википедии?

Я пишу приложение, которому нужны списки фрагментов страниц Википедии в определенной категории. Некоторые категории очень хорошо для этого подходят. Например, Category:English-language_films — это категория, которой присвоено около 60 тыс. страницы. Используя API MediaWiki, я могу запросить list=categorymembers и получить список всех 60 000 фильмов.

Однако это гораздо хуже работает с чем-то вроде хоккеистов в НХЛ. Category:Lists_of_National_Hockey_League_players почти не отличается от категории, но это категория списка страницы. Получается, что понятие игроков НХЛ хранится в списках, а не в категориях. Где хранится понятие англоязычных фильмов в виде категории.

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

Есть ли прямой способ получить страницы, перечисленные в списках, включая расширение подсписков с помощью API или какой-либо способ узнать из содержимого списка, является ли ссылка членом списка или просто метаданные о члене из списка?


person mmachenry    schedule 10.01.2018    source источник


Ответы (1)


Когда есть категория списка вещей, скорее всего, будет и категория вещей. В вашем случае это будет Категория:Игроки Национальной хоккейной лиги. Вы можете пройти это рекурсивно с помощью API categorymembers. (В отличие от списков, категории не могут содержать красные ссылки, поэтому в зависимости от вашего варианта использования это может быть проблемой.)

В остальном API-интерфейсы Википедии мало чем помогут. Вы можете найти в Викиданных что-нибудь подходящее (например, элементы данных с идентификатором игрока NHL.com). имущество); это другой набор данных, но иногда он синхронизируется, и его всегда легко запрашивать. Если это не подходит, вам придется очистить HTML.

person Tgr    schedule 13.01.2018