Википедия, в отличие от большинства сайтов, не ставит задачу сокрытия данных от использования. Кроме её парсинга полезно рассмотреть альтернативные способы:
1. Парсинг дампов SAX-парсером:
https://dumps.wikimedia.org/ruwiki/latest/
Главное в тексте находить нужные категории.
2. Использование SPARQL к Wikidata:
https://query.wikidata.org/
Например, я наскоро набросал такой запрос, находящий все элементы субклассов "животное":
select ?animal ?animalLabel where {
# субкласс (wdt:P729) животного (wd:Q729)
?animal wdt:P279 ?animalSubClass.
?animalSubClass wdt:P279* wd:Q729.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en". }
}
К сожалению, не всегда данные в Википедии хорошо размечены семантически, поэтому в подобную выборку может попасть не всё. Ну и полно будет извлечено из enwiki.