Help:Dışa aktar

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:Export and the translation is 31% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎русский • ‎српски / srpski • ‎中文 • ‎日本語
PD Not: Bu sayfayı düzenlerken katkınızı CC0 altında yayınlamayı kabul edersiniz. Daha fazla bilgi için Kamu Malı Yardım Sayfalarına bakın.
Bu sayfa için yapılan bazı eski değişiklikler CC BY-SA lisansı altına kaydırılmıştır. Yalnızca yeni katkılar KM'dir.
PD

Viki sayfaları özel bir XML biçiminde içe aktarma yüklemesi başka bir MediaWiki kurulumuna aktarılabilir (bu işlev hedef vikide etkinleştirildiyse ve kullanıcı orada bir hizmetli ise) veya içeriği içeriği analiz etmek için başka şekilde kullanın. Ayrıca sayfalar dışında başka bilgileri dışa aktarma ve içe aktarmalarda Help:Import aktarma için m:Sendikasyon yayınlarına bakın.

Nasıl dışa aktarılır

Sayfaları dışa aktarmanın en az dört yolu vardır:

  • Special:Export içindeki kutuya makalelerin adını yapıştırın veya //www.mediawiki.org/wiki/Special:Export/FULLPAGENAME kullanın.
  • Yedek betiği dumpBackup.php tüm wiki sayfalarını bir XML dosyasına döker. dumpBackup.php yalnızca MediaWiki 1.5 veya daha yeni sürümlerinde çalışır. Bu betiğini çalıştırmak için sunucuya doğrudan erişiminizin olması gerekir. Wikimedia projelerinin dökümü düzenli olarak https://dumps.wikimedia.org/ sağlanıyor.
    • Not: dumpBackup.php dosyasını başarıyla çalıştırmak için AdminSettings.php dosyasını yapılandırmanız gerekebilir. Daha fazla bilgi için m:MediaWiki sayfasına bakın.
  • OAI-PMH - belirli bir zamandan beri değiştirilen sayfaları düzenli olarak getirmek için bir arayüz vardır. Wikimedia projeleri için bu arayüz herkese açık değildir; Wikimedia update feed service sayfasına bakın. OAI-PMH, dışa aktarılan makalelerin çevresinde bir sarmalayıcı biçimi içerir.
  • Python Vikipedi Robot Çerçevesi'ni kullanın. Bu burada açıklanmayacak

Varsayılan olarak bir sayfanın yalnızca geçerli sürümü eklenir. İsteğe bağlı olarak tarih, saat, kullanıcı adı ve düzenleme özeti içeren tüm sürümleri alabilirsiniz. İsteğe bağlı olarak, doğrudan veya dolaylı olarak adlandırılan tüm şablonların en son sürümü de dışa aktarılır.

Ayrıca SQL veritabanını kopyalayabilirsiniz. Veritabanının dökümleri MediaWiki 1.5'ten önce bu şekilde kullanıma sunuldu ve burada daha fazla açıklanmayacak.

'Special:Export' kullanımı

Örneğin, bir ad alanının tüm sayfalarını dışa aktarmak için.

1. Dışa aktarılacak sayfaların adlarını alın

Bir örnek daha iyi hissediyorum, çünkü aşağıdaki açıklama oldukça net değil.

  1. Special:Allpages'a gidin ve istediğiniz maddeyi/dosyayı seçin.
  2. Sayfa adları listesini bir metin düzenleyicisine kopyalayın
  3. Tüm sayfa adlarını ayrı satırlara yerleştirin
    1. Oluşturulan sayfanın bir kısmını istenen adlarla kopyalayıp bunu MS Word'e yapıştırırsanız bunu nispeten hızlı bir şekilde elde edebilirsiniz - biçimlendirilmemiş metin olarak özel macunu kullan - sonra değiştirme işlevini (CTRL+h) açın, ^t bul, Değiştir ile ^p girip Tümünü Değiştir düğmesine basın. (Bu, sayfa adları arasındaki sekmelere dayanır; bunlar genellikle sayfa adlarının html kaynağındaki td etiketlerinin içinde olmasının sonucudur.)
    2. 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.
    3. Another approach is to copy the formatted text into any editor exposing the html. Remove all <tr> and </tr> tags and replace all <td> tags to <tr><td> and </td> tags to </td></tr> the html will then be parsed into the needed format.
    4. If you have shell and mysql access to your server, you can use this script:
#
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.
  2. Repeat the steps above for other namespaces (e.g. Category:, Template:, etc.)

A similar script for PostgreSQL databases looks like this:

$ 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:

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

2. Perform the export

  • 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.

and finally...

  • Open the XML file in a text editor. Scroll to the bottom to check for error messages.

Now you can use this XML file to perform an import.

Exporting the full history

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 Parameters to Special:Export .

Export format

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 &lt; and &gt;, to avoid a conflict with XML tags; to avoid ambiguity, "&" is coded as "&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.

Example

  <mediawiki xml:lang="en">
    <page>
      <title>Page title</title>
      <restrictions>edit=sysop:move=sysop</restrictions>
      <revision>
        <timestamp>2001-01-15T13:15:00Z</timestamp>
        <contributor><username>Foobar</username></contributor>
        <comment>I have just one thing to say!</comment>
        <text>A bunch of [[Special:MyLanguage/text|text]] here.</text>
        <minor />
      </revision>
      <revision>
        <timestamp>2001-01-15T13:10:27Z</timestamp>
        <contributor><ip>10.0.0.2</ip></contributor>
        <comment>new!</comment>
        <text>An earlier [[Special:MyLanguage/revision|revision]].</text>
      </revision>
    </page>
    
    <page>
      <title>Talk:Page title</title>
      <revision>
        <timestamp>2001-01-15T14:03:00Z</timestamp>
        <contributor><ip>10.0.0.2</ip></contributor>
        <comment>hey</comment>
        <text>WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
      </revision>
    </page>
  </mediawiki>

DTD

Here is an unofficial, short Document Type Definition version of the format. If you don't know what a DTD is just ignore it.

<!ELEMENT mediawiki (siteinfo,page*)>
<!-- version contains the version number of the format (currently 0.3) -->
<!ATTLIST mediawiki
  version  CDATA  #REQUIRED 
  xmlns CDATA #FIXED "https://www.mediawiki.org/xml/export-0.3/"
  xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation CDATA #FIXED
    "https://www.mediawiki.org/xml/export-0.3/ https://www.mediawiki.org/xml/export-0.3.xsd"
  xml:lang  CDATA #IMPLIED
>
<!ELEMENT siteinfo (sitename,base,generator,case,namespaces)>
<!ELEMENT sitename (#PCDATA)>      <!-- name of the wiki -->
<!ELEMENT base (#PCDATA)>          <!-- url of the main page -->
<!ELEMENT generator (#PCDATA)>     <!-- MediaWiki version string -->
<!ELEMENT case (#PCDATA)>          <!-- how cases in page names are handled -->
   <!-- possible values: 'first-letter' | 'case-sensitive'
                         'case-insensitive' option is reserved for future -->
<!ELEMENT namespaces (namespace+)> <!-- list of namespaces and prefixes -->
  <!ELEMENT namespace (#PCDATA)>     <!-- contains namespace prefix -->
  <!ATTLIST namespace key CDATA #REQUIRED> <!-- internal namespace number -->
<!ELEMENT page (title,id?,restrictions?,(revision|upload)*)>
  <!ELEMENT title (#PCDATA)>         <!-- Title with namespace prefix -->
  <!ELEMENT id (#PCDATA)> 
  <!ELEMENT restrictions (#PCDATA)>  <!-- optional page restrictions -->
<!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)>
  <!ELEMENT timestamp (#PCDATA)>     <!-- according to ISO8601 -->
  <!ELEMENT minor EMPTY>             <!-- minor flag -->
  <!ELEMENT comment (#PCDATA)> 
  <!ELEMENT text (#PCDATA)>          <!-- Wikisyntax -->
  <!ATTLIST text xml:space CDATA  #FIXED "preserve">
<!ELEMENT contributor ((username,id) | ip)>
  <!ELEMENT username (#PCDATA)>
  <!ELEMENT ip (#PCDATA)>
<!ELEMENT upload (timestamp,contributor,comment?,filename,src,size)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT src (#PCDATA)>
  <!ELEMENT size (#PCDATA)>

Processing XML export

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:

Details and practical advice

  • To determine the namespace of a page you have to match its title to the prefixes defined in

/mediawiki/siteinfo/namespaces/namespace

  • Possible restrictions are
    • sysop (protected pages)

Why to export

Why not just use a dynamic database download?

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

See also