Экспорт текста (разметка MediaWiki) из установки MediaWiki - PullRequest
1 голос
/ 13 октября 2011

Я хочу экспортировать разметку MediaWiki для ряда статей (но не все статьи ) из локальной установки MediaWiki. Я хочу только текущую разметку статьи, а не историю или что-то еще, с отдельным текстовым файлом для каждой статьи. Я хочу выполнить этот экспорт программно и в идеале на сервере MediaWiki, а не удаленно.

Например, если я заинтересован в статьях Apple, Banana и Cupcake, я хочу иметь возможность:

article_list = ["Apple", "Banana", "Cupcake"]
for a in article_list:
    get_article(a, a + ".txt")

Мое намерение:

  • извлечь необходимые статьи
  • хранить разметку MediaWiki в отдельных текстовых файлах
  • разбирать и обрабатывать в отдельной программе

Это уже возможно с MediaWiki? Это не похоже на это. Это также не похоже на то, что Pywikipediabot имеет такой скрипт .

В качестве запасного варианта можно было бы сделать это вручную (используя специальную страницу «Экспорт») и легко разобрать выходные данные в текстовые файлы. Существуют ли инструменты для этого? Есть ли описание формата дампа MediaWiki XML? (Я не мог найти один.)

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

На стороне сервера вы можете просто экспортировать из базы данных. Удаленно Pywikipediabot имеет скрипт под названием get.py, который получает вики-код данной статьи. Это также довольно просто сделать вручную, как-то так (при записи из памяти могут возникнуть ошибки):

import wikipedia as pywikibot
site = pywikibot.getSite() # assumes you have a user-config.py with default site/user
article_list = ["Apple", "Banana", "Cupcake"]
for title in article_list:
    page = pywikibot.Page(title, site)
    text = page.get() # handling of not found etc. exceptions omitted
    file = open(title + ".txt", "wt")
    file.write(text)

Поскольку язык MediaWiki не является четко определенным, единственный надежный способ его анализа / обработки - это сам MediaWiki; в Pywikipediabot такой поддержки нет, и несколько инструментов, пытающихся это сделать, не работают со сложными шаблонами.

1 голос
/ 17 октября 2011

Похоже, getText.php - это встроенный серверный сценарий обслуживания для экспорта вики-текста определенной статьи. (Проще, чем запрашивать базу данных.)

Нашел через Публикация из MediaWiki , которая охватывает все аспекты экспорта из MediaWiki.

...