How to download pages from Wikipedia Portal:Karelia

How to download pages from Wikipedia Portal:Karelia

Судя по обсуждению подобного вопроса на stackoverflow.com - http://stackoverflow.com/questions/17803566/how-to-get-random-page-of-specific-portal-using-wikimedia-api - такой возможности, как получить список страниц из определенного Портала, нет. Но зато можно выполнить похожий запрос - список страниц из определенной Категории (и его подкатегорий).

Загружать список ссылок из определенной Категории мы уже умеем (см. метод downloadCategoryMembers(String category) в классе WikipediaPagesDownloader). В этом списке будут находится ссылки на все типы страниц из указанной категории, включая ссылки на обычные Wikipedia-статьи, на подкатегории, на файлы и т. п. Для того чтобы определить к какому типу относится ссылка, нужно сравнить ее пространство имен (namespace). Если namespace = 0, то это обычная статья из Wikipedia; если namespace = 14 - это ссылка на подкатегорию (т. е. это следующую Категория, из которой таким же способом можно получить список ссылок); если namespace = 8 - это ссылка на файл; namespace = 100 - ссылка на Портал и т. д.

Wikipedia-статьи из указанной Категории и из его подкатегорий могут повторяться, поэтому перед загрузкой необходимо проверить, что такая статья еще не встречалась.