Экспортировать Википедию по категориям? - PullRequest
4 голосов
/ 30 января 2012

Я знаю, что могу загрузить Википедию полностью. Но мне интересно, есть ли способ скачать его по категориям? У них есть страница Special Export , но при написании категории (например, «Культура») добавляются дочерние страницы и еще одна группа категорий, поэтому попытка получить все страницы в «Культуре» займет «навсегда», поскольку при отправке другие подкатегории культуры другой появляются. Ребята, вы знаете какой-нибудь другой способ экспортировать его по категориям? (по-простому)

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

Используя MediaWiki API , вы можете получить вики-текст всех страниц в категории, используя list=categorymembers в качестве генератора для prop=revisions запрос, например:

http://en.wikipedia.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Culture&gcmnamespace=0&prop=revisions&rvprop=content

В этом примере ссылки приводится содержание первых 10 статей в Категория: Культура в Википедии.Вы можете добавить параметр gcmlimit=max, чтобы получить больше страниц, но для больших категорий вам нужно правильно обработать продолжения запроса (или использовать клиент MediaWiki API , который обрабатывает их для вас).

(Однако в этом запросе не будут отображаться страницы в подкатегориях категории: Культура. Если они вам тоже нужны, вы можете получить список страниц и подкатегорий в категории, используя простой запрос categorymembers без cmnamespace и просматривайте результаты, чтобы собрать список заголовков статей для экспорта. Если вы это сделаете, будьте осторожны, чтобы не попасть в какие-либо циклы категорий, и желательноПроведите проверку работоспособности результатов перед экспортом страниц - очень легко получить на путь * на 1034 * больше страниц, чем вы ожидали при полном обходе подкатегории.)

3 голосов
/ 30 января 2012

Я не думаю, что есть какой-то другой простой способ сделать это.

Я думаю, что вам лучше всего загрузить файл дампа всех статей (pages-articles, в настоящее время 7,5 ГБ для английской Википедии) и отфильтровать их по категориям, возможно, используя дамп членства в категории (categorylinks, 1 ГБ) .

Другой вариант - сделать что-то похожее на то, что вы бы делали, используя Special: Export вручную, но автоматизируйте его, используя API .

...