Как экспортировать текст со всех страниц MediaWiki? - PullRequest
13 голосов
/ 19 июля 2011

У меня работает MediaWiki, который представляет собой словарь немецких терминов и их перевод на местный диалект. Каждая страница содержит один термин, его перевод и ряд дополнительных сведений.

Теперь, для печатной версии словаря, мне нужен полный экспорт всех терминов и их перевод. Поскольку это выдержка из содержимого страницы, я думаю, мне нужен полный экспорт всех страниц в их новейшей версии в доступном формате, например. XML или CSV.

Кто-нибудь сделал это или может указать мне на инструмент? Следует отметить, что у меня нет полного доступа к серверу, например нет командной строки, но я могу добавить расширения MediaWiki или получить доступ к базе данных MySQL.

Ответы [ 6 ]

4 голосов
/ 16 ноября 2013

Вы можете экспортировать содержимое страницы напрямую из базы данных.Это будет необработанная вики-разметка, как при использовании Special: Export.Но будет проще составить сценарий экспорта, и вам не нужно проверять, чтобы все ваши страницы были в какой-то специальной категории.

Вот пример:

SELECT page_title, page_touched, old_text
FROM revision,page,text
WHERE revision.rev_id=page.page_latest
AND text.old_id=revision.rev_text_id;

В вики используется Postgresql, таблица «text» называется «pagecontent», и вам может потребоваться указать схему.В этом случае тот же запрос будет:

SET search_path TO mediawiki,public;

SELECT page_title, page_touched, old_text 
FROM revision,page,pagecontent
WHERE revision.rev_id=page.page_latest
AND pagecontent.old_id=revision.rev_text_id;
2 голосов
/ 25 марта 2014

Это сработало очень хорошо для меня.Обратите внимание, я перенаправил вывод в файл backup.xml.Из командной строки Windows Processor (CMD.exe):

cd \PATH_TO_YOUR_WIKI_INSTALLATION\maintenance
\PATH_OF_PHP.EXE\php dumpBackup.php --full > backup.xml
1 голос
/ 18 июня 2013

Экспорт

cd maintenance
php5 ./dumpBackup.php --current > /path/wiki_dump.xml

Импорт

cd maintenance
php5 ./importDump.php < /path/wiki_dump.xml
1 голос
/ 27 июля 2011

Я не полностью удовлетворен решением, но в итоге я указал общую категорию для всех страниц, а затем я могу добавить эту категорию и все содержащиеся в ней имена страниц в поле Special: Export. Кажется, это работает, хотя я не уверен, будет ли оно работать, когда я достигну нескольких тысяч страниц.

0 голосов
/ 27 июля 2011

Вы можете использовать специальную страницу, Special: Export для экспорта в XML; вот версия Википедии .

Вы также можете рассмотреть Расширение: Коллекция , если вы хотите, чтобы он в конечном итоге читался человеком (например, PDF).

0 голосов
/ 19 июля 2011

Это выглядит не так просто. http://meta.wikimedia.org/wiki/Help:Export может помочь, но, вероятно, нет.

Если все страницы структурированы одинаково, вы можете написать веб-скребок с чем-то вроде Scrapy

...