Как экспортировать текст со всех страниц MediaWiki?
У меня работает MediaWiki, который представляет словарь немецких терминов и их перевод на локальный диалект. Каждая страница содержит один термин, его перевод и ряд дополнительных сведений.
Теперь, для пригодной для печати версии словаря, мне нужен полный экспорт всех терминов и их перевод. Поскольку это фрагмент содержимого страницы, мне кажется, мне нужен полный экспорт всех страниц в их новейшей версии в разборном формате, например. xml или csv.
Кто-нибудь сделал это или может указать мне на инструмент?
Следует отметить, что у меня нет полного доступа к серверу, например. нет командной строки, но я могу добавить расширения MediaWiki или получить доступ к базе данных MySQL.
Ответы
Ответ 1
Я не полностью удовлетворен решением, но в итоге я указал общую категорию для всех страниц, а затем я могу добавить эту категорию и все содержащиеся имена страниц в поле "Специальный: Экспорт". Кажется, все работает, хотя я не уверен, что он будет работать, когда я дойду до нескольких тысяч страниц.
Ответ 2
Вы можете экспортировать содержимое страницы непосредственно из базы данных. Это будет сырая разметка wiki, как при использовании Special: Export. Но экспорт script будет проще, и вам не нужно проверять, чтобы все ваши страницы находились в какой-то специальной категории.
Вот пример:
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, таблица "текст" называется "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;
Ответ 3
Это работало очень хорошо для меня. Обратите внимание, что я перенаправил вывод в файл backup.xml. В командной строке Windows Command Processor (CMD.exe):
cd \PATH_TO_YOUR_WIKI_INSTALLATION\maintenance
\PATH_OF_PHP.EXE\php dumpBackup.php --full > backup.xml
Ответ 4
Экспорт
cd maintenance
php5 ./dumpBackup.php --current > /path/wiki_dump.xml
Импорт
cd maintenance
php5 ./importDump.php < /path/wiki_dump.xml
Ответ 5
Это выглядит не так просто. http://meta.wikimedia.org/wiki/Help:Export может помочь, но, вероятно, нет.
Если все страницы структурированы одинаково, вы можете написать веб-скребок с чем-то вроде Scrapy
Ответ 6
Вы можете использовать специальную страницу Специально: Экспорт для экспорта в XML; здесь версия Википедии.
Вы также можете рассмотреть Extension: Collection, если хотите, чтобы в конечном итоге это была форма для чтения человеком (например, PDF).