Очистка подкатегорий (страниц) Википедии с несколькими глубинами?

Если вы откроете computer science category в википедии (https://en.wikipedia.org/wiki/Category:Computer_science), он отображает всего 19 подкатегорий (https://en.wikipedia.org/wiki/Category:Computer_science). Теперь для всех этих 19 подкатегорий, если я хочу extract только названия страниц (названия страниц). Например, страницы в категории Computer science содержат 45 страниц, которые отображаются как bullets сразу под списком подкатегорий Википедии. Теперь для всех других связанных подкатегорий, например, Areas of computer science — это подкатегория с 3 страницами (https://en.wikipedia.org/wiki/Category:Areas_of_computer_science). Но, опять же, он имеет 17 подкатегорий (т.е. глубина 1 с учетом обхода, т.е. глубина = 1 означает, что у нас 1 глубина). Опять же, algorithm and data structures (https://en.wikipedia.org/wiki/Category:Algorithms_and_data_structures) с 5 страницами и artificial intelligence (https://en.wikipedia.org/wiki/Category:Artificial_intelligence), имеющий 333 страниц с некоторыми дополнительными categories и subcategories, объединенными в несколько страниц (см. Страницы в категории «Искусственный интеллект») с 37 категориями и 333 страницами, таким образом, этот список можно продолжить еще глубже. Теперь мы находимся на глубине 2. Что мне нужно, так это извлечь все страницы (заголовки) для обхода с глубиной 1 и глубиной 2. Существует ли какой-либо алгоритм для достижения того же?

Например: область подкатегории информатики снова имеет несколько (17) подкатегорий с общим количеством страниц 5+333+127+79+216+315+37+47+95+37+246+103+21+2 +55+113+94 страницы с учетом всех (17) подкатегорий. Это глубина 2, потому что я дважды переключил список. То же самое необходимо включить для остальных 18 подкатегорий (https://en.wikipedia.org/wiki/Category:Computer_science) с глубиной 2 для базового корня Информатика?

Существует ли способ добиться этого? Отображение и извлечение такого количества страниц сложно, потому что оно будет огромным. Таким образом, максимальный порог в 10 000 страниц будет абсолютно приемлемым.

Существует ли способ сделать это? Любая небольшая помощь приветствуется!


person M S    schedule 10.10.2018    source источник
comment
для начала загляните в инструменты разработки, которые поставляются с вашим браузером. например chrome имеет вкладку сети, которая показывает запросы, выполняемые при раскрытии каждого раздела. вы можете увидеть возвращаемые ответы xml, которые должны помочь вам выяснить, какие конечные точки нужно поразить. в противном случае википедия предоставляет (большие) дампы данных, которые позволят вам получить это самостоятельно, а не сканировать их сайт, и их было бы полезно использовать в зависимости от того, насколько глубоко вы хотите пойти.   -  person Sam Mason    schedule 10.10.2018


Ответы (1)


Существует инструмент под названием PetScan, размещенный в лабораториях Викимедиа. Вы можете легко ввести название категории, затем выбрать глубину, которую хотите достичь, и все готово! https://petscan.wmflabs.org/

Также посмотрите, как это работает https://meta.m.wikimedia.org/wiki/PetScan/en

person ASammour    schedule 11.10.2018
comment
Интересный. Конечно попробую! - person M S; 11.10.2018