Help:Export/ru

Вики-страницы могут быть экспортированы в специальный XML файл для загрузки в другую Вики (если эта функция включена администратором на этой Вики) или использовать его в других целях, например, для анализа содержимого. См. также m:Syndication feeds для экспорта другой информации при просмотре веб-страниц и на загруженные страницы.

Как экспортировать страницы
Существует как минимум четыре способа экспорта страниц:


 * Вставьте название статьи в поле в Special:Export или используйте.
 * Резервное копирование с помощью  даст дамп всех страниц Вики в XML-файл.   работает только на MediaWiki 1.5 и выше. Вы должны иметь прямой  доступ на сервер (например по SSH) для запуска этого скрипта (быть администратором сервера (а не вики)). Дампы проектов Викимедиа регулярно становятся доступны в https://dumps.wikimedia.org/.
 * Примечание: Вам может потребоваться настроить файл AdminSettings.php в для успешного запуска скрипта dumpBackup.php. См. MediaWiki для более детальной информации.
 * Существует OAI-PMH - интерфейс для выборки страниц, которые были изменены после определенного времени. Для проектов Викимедиа этот интерфейс не является общедоступным; см. . OAI-PMH содержит оболочку вокруг формата экспортируемых статей.
 * Используя Python Wikipedia Robot Framework. Это здесь не описано.

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

Дополнительно Вы можете скопировать базу данных SQL. Как делать дампы базы данных в версиях Медиавики менее чем 1.5, здесь не будет описанно.

Использование 'Special:Export'
Например для: Экспорта всех страниц из пространства имён.

1. Получить имена страниц для экспорта
Считается, что пример лучше описывает алгоритм.

Remove all  and   tags and replace all   tags to    and   tags to    the html will then be parsed into the needed format. Если у вас есть доступ к shell и mysql, то вы можете использовать следующий скрипт:
 * 1) Перейдите на Special:Allpages и выберете нужные статьи/файлы.
 * 2) Скопируйте список имен страниц в текстовом редакторе
 * 3) Необходимо поместить все имена страниц на отдельных строках
 * 4) Вы можете добиться этого относительно быстро, если вы скопируете части отображаемой страницы с нужными именами, и вставьте в Libre Office Writer/MS Word - используя специальную вставку как неформатированный текст - затем выберете функцию заменить (сочетание клавиш Ctrl+h), введите ^t в "найти", в поле "заменить" введите ^p, а затем нажмите кнопку "Заменить все". ( This relies on tabs between the page names; these are typically the result of the fact that the page names are inside td-tags in the html-source. )
 * 1) The text editor Vim also allows for a quick way to fix line breaks: after pasting the whole list, run the command :1,$s/\t/\r/g to replace all tabs by carriage returns and then :1,$s/^\n//g to remove every line containing only a newline character.
 * 1) Another approach is to copy the formatted text into any editor exposing the html.

mysql -umike -pmikespassword -hlocalhost wikidbname select page_title from wiki_page where page_namespace=0 EOF

'' Note, replace mike and mikespassword with your own. Also, this example shows tables with the prefix wiki_ ''


 * 1) Prefix the namespace to the page names (e.g. 'Help:Contents'), unless the selected namespace is the main namespace.
 * 1) Repeat the steps above for other namespaces (e.g. Category:, Template:, etc.)

Аналогичный скрипт для баз данных PostgreSQL выглядит так:

$ psql -At -U wikiuser -h localhost wikidb -c "select page_title from mediawiki.page"

'' Note, replace wikiuser with your own, the database will prompt you for a password. This example shows tables without the prefix wiki_ and with the namespace specified as part of the table name. ''

Alternatively, a quick approach for those with access to a machine with Python installed:

Some wikis may have more pages than will fit on one screen of AllPages; you will need to save each of those pages. You may wish to pipe the output to a file; e.g.  to send it to a file named "main".
 * 1) Go to Special:Allpages and choose the desired namespace.
 * 1) Save the entire webpage as index.php.htm.
 * 1) Run export_all_helper.py in the same directory as the saved file.
 * 1) Save the page names output by the script.

2. Выполнить экспорт

 * Go to Special:Export and paste all your page names into the textbox, making sure there are no empty lines.
 * Click 'Submit query'
 * Save the resulting XML to a file using your browser's save facility.

и наконец...


 * Открыть файл XML в текстовом редакторе. Прокрутите вниз, чтобы проверить сообщения об ошибках.

Теперь вы можете использовать этот XML-файл для выполнения импорта.

Экспорт полной истории
A checkbox in the Special:Export interface selects whether to export the full history (all versions of an article) or the most recent version of articles. A maximum of 100 revisions are returned; other revisions can be requested as detailed in.

Формат экспорта
The format of the XML file you receive is the same in all ways. It is codified in XML Schema at https://www.mediawiki.org/xml/export-0.10.xsd This format is not intended for viewing in a web browser. Some browsers show you pretty-printed XML with "+" and "-" links to view or hide selected parts. Alternatively the XML-source can be viewed using the "view source" feature of the browser, or after saving the XML file locally, with a program of choice. If you directly read the XML source it won't be difficult to find the actual wikitext. If you don't use a special XML editor "<" and ">" appear as &amp;lt; and &amp;gt;, to avoid a conflict with XML tags; to avoid ambiguity, "&amp;" is coded as "&amp;amp;".

In the current version the export format does not contain an XML replacement of wiki markup (see Wikipedia DTD for an older proposal). You only get the wikitext as you get when editing the article.

DTD
Вот неофициальное, короткое описание версии формата Document Type Definition. Если вы не знаете, что такое DTD, просто игнорируйте это.

Обработка экспорта XML
Many tools can process the exported XML. If you process a large number of pages (for instance a whole dump) you probably won't be able to get the document in main memory so you will need a parser based on SAX or other event-driven methods.

You can also use regular expressions to directly process parts of the XML code. This may be faster than other methods but not recommended because it's difficult to maintain.

Please list methods and tools for processing XML export here:

Parse Wiki Text (crates.io) is a Rust crate to parse wiki text into a tree of elements.
 * Parse MediaWiki Dump (crates.io) is a Rust crate to parse XML dumps.
 * Parse::MediaWikiDump is a perl module for processing the XML dump file.
 * m:Processing MediaWiki XML with STX - Stream based XML transformation
 * The m:IBM History flow project can read it after applying a small Python program, export-historyflow-expand.py.

Детали и советы

 * Для того, чтобы определить пространство имён для страницы, нужно сравнить название страницы с префиксами, обозначенными на странице
 * Возможные ограничения
 * - защищенные страницы

Зачем экспортировать
Почему просто не скачать базу данных?

Suppose you are building a piece of software that at certain points displays information that came from Wikipedia. If you want your program to display the information in a different way than can be seen in the live version, you'll probably need the wikicode that is used to enter it, instead of the finished html.

Also if you want to get all of the data, you'll probably want to transfer it in the most efficient way that's possible. The Wikimedia servers need to do quite a bit of work to convert the wikicode into html. That's time consuming both for you and for the Wikimedia servers, so simply spidering all pages is not the way to go.

To access any article in XML, one at a time, link to:

Special:Export/Title_of_the_article

См. также

 * Data portability on Wikipedia
 * Data portability on Wikipedia
 * Data portability on Wikipedia
 * Data portability on Wikipedia