Aide:Exporter

This page is a translated version of the page Help:Export and the translation is 100% complete.
PD Note : si vous modifiez cette page, vous acceptez de placer votre contribution sous licence CC0. Plus d’informations sont disponibles sur le projet Aide dans le domaine public.
Quelques versions anciennes de cette page ont été importées sous la licence CC BY-SA. Seules les nouvelles contributions sont dans le domaine public.
PD

Les pages Wiki peuvent être exportées dans le format spécial XML vers télécharger l'import dans une autre installation MediaWiki (si cette fonction est activée sur le wiki de destination, et que l'utilisateur est un sysop) ou l'utiliser autrement pour en analyser le contenu. Voir aussi le Flux de syndication pour exporter d'autres informations sauf les pages et Aide:Importer pour l'importation de pages.

Comment exporter

Il y a au moins quatre manières d'exporter les pages :

  • Collez le nom des articles dans la boîte dans Special:Export ou utilisez //www.mediawiki.org/wiki/Special:Export/FULLPAGENAME.
  • Le script de sauvegarde dumpBackup.php enregistre toutes les pages du wiki dans un fichier XML. dumpBackup.php ne fonctionne que sur MediaWiki 1.5 ou plus récent. Vous devez avoir un accès direct au serveur pour exécuter ce script. Les vidages des projets Wikimédia sont régulièrement disponibles sur https://dumps.wikimedia.org/.
  • Il existe une interface OAI-PMH pour récupérer régulièrement les pages qui ont été modifiées depuis une certaine date. Pour les projets Wikimedia, cette interface n'est pas accessible au public ; voir Wikimedia update feed service . OAI-PMH contient un format de conteneur autour des articles effectivement exportés.
  • Utilisez l'environnement Pywikibot. Cela ne sera pas expliqué ici.

Par défaut, seule la version actuelle d'une page est incluse. En option, vous pouvez obtenir toutes les versions avec la date, l'heure, le nom d'utilisateur et le résumé d'édition. En option, la dernière version de tous les modèles appelés directement ou indirectement est également exportée. Si vous importez un vidage qui ne comprend pas de modèles, alors les pages résultantes ne seront probablement pas rendues correctement si les modèles nécessaires n'existent pas sur le wiki de destination.

De plus, vous pouvez copier la base de données SQL. C'est ainsi que les vidages de la base de données ont été rendus disponibles avant MediaWiki 1.5 et cela ne sera pas davantage expliqué ici.

Utilisation de 'Special:Export'

Pour exporter toutes les pages d'un espace de noms, par exemple.

Obtenir les noms des pages à exporter

Je pense qu'un exemple est meilleur parce que la description ci-dessous est assez peu claire.

  1. Allez dans Special:Allpages et choisissez l'article ou le fichier désiré.
  2. Copiez la liste des noms des pages dans un éditeur de texte
  3. Placez le nom de chaque page sur une ligne séparée
    1. Vous pouvez réaliser cela assez rapidement si vous copiez la partie de la page rendue avec les noms souhaités, et la collez dans un fichier du type MS Word - utilisez le collage spécial comme texte non formaté - puis ouvrez la fonction de remplacement (CTRL + h), en entrant ^t dans Rechercher, entrez ^p dans Remplacer par, puis appuyez sur le bouton Remplacer tout. (Cela dépend des onglets entre les noms de pages ; ceux-ci sont généralement le résultat du fait que les noms de pages sont à l'intérieur de td-tags dans le source HTML.)
    2. L'éditeur de texte Vim permet également de corriger rapidement les sauts de ligne : après avoir collé toute la liste, exécutez la commande :1,$s/\t/\r/g pour remplacer tous les catactères de tabulation par des retours chariot puis :1,$s/^\n//g pour supprimer chaque ligne contenant uniquement un caractère de nouvelle ligne.
    3. Une autre approche consiste à copier le texte formaté dans n'importe quel éditeur affichant le HTML. Retirez toutes les balises ‎<tr> et ‎</tr> en remplaçant tous les ‎<td> par des balises <tr><td> et les ‎<td> par </td></tr>. Le code HTML sera ensuite analysé dans le format requis.
    4. Si vous avez un accès au shell et à MySQL sur votre serveur, vous pouvez utiliser ce script :

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

Remarque, remplacez mike et mikespassword par les vôtres. En outre, cet exemple montre les tables avec le préfixe wiki_

  1. Préfixez les noms des pages avec l'espace de noms (par exemple, 'Help:Contents'), sauf si l'espace de noms sélectionné est l'espace de noms principal.
  2. Répétez les étapes ci-dessus pour les autres espaces de noms (p.ex. Catégorie ; Modèle ; etc.)

Un script similaire pour des bases de données PostgreSQL ressemble à :

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

Remarque, remplacez wikiuser par votre nom d'utilisateur, la base de données vous demandera ensuite votre mot de passe. Cet exemple montre des tables sans le préfixe wiki_ et avec l'espace de noms spécifié dans le nom de la table.

Réaliser l'export

  • Allez à Special:Export et copiez tous vos noms de pages dans le champ de texte, en vous assurant de ne laisser aucune ligne vide.
  • Cliquez sur 'Exporter'
  • Sauvegardez le fichier XML résultant à l'aide de votre navigateur.

et finalement...

  • Ouvrez le fichier XML dans un éditeur de texte. Descendez dans le fichier à la recherche des messages d'erreur.

Vous pouvez maintenant utiliser ce fichier XML pour réaliser un import.

Exporter l'historique complet

L'exportation de l'historique de révision peut être souhaitable pour conserver les informations et l'attribution de l'auteur. Une case à cocher dans l'interface Special:Export permet de sélectionner l'historique complet (toutes les versions d'un article) ou la version la plus récente des articles. Un maximum de 100 versions est renvoyé ; les autres révisions peuvent être demandées comme précisé dans Parameters to Special:Export .

Format d'exportation

Le format du fichier XML que vous recevez est tout à fait le même. Il est codifié en schéma XML à https://www.mediawiki.org/xml/export-0.11.xsd Ce format n'est pas destiné à être affiché dans un navigateur web. Certains navigateurs vous montrent le XML proprement présenté avec des liens + ou - pour voir ou cacher les parties sélectionnées. Alternativement la source XML peut être vue avec la fonctionnalité Voir la source de votre navigateur, ou après avoir sauvegardé le fichier XML localement, avec le programme de votre choix. Si vous lisez directement le source XML, il ne sera pas difficile d'y retrouver le wikicode actuel. Si vous n'utilisez pas d'éditeur XML particulier < et > apparaitront comme &lt; et &gt; afin d'éviter les conflits avec des balises XML ; pour éviter toute ambiguïté, & est codé comme &amp;.

Dans la version actuelle le format d'exportation ne comprend pas le remplacement en XML des balises wiki (voir la Wikipedia DTD pour une ancienne proposition). Vous obtenez simplement le wikicode tel qu'il apparaît lors de la modification de l'article.

Exemple

  <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

Voici une version non officielle et courte du format de la Définition du Type de Document. Si vous ne savez pas ce qu'est une DTD, ignorez-la simplement.

<!ELEMENT mediawiki (siteinfo,page*)>
<!-- version contient le numéro de version du format (actuellement 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)>      <!-- nom du wiki -->
<!ELEMENT base (#PCDATA)>          <!-- url de la page d'accueil -->
<!ELEMENT generator (#PCDATA)>     <!-- Chaîne de version de MediaWiki -->
<!ELEMENT case (#PCDATA)>          <!-- indique comment est gérée la casse des noms de pages -->
   <!-- valeurs possibles : 'first-letter' | 'case-sensitive'
        l'option 'Case-insensitive' est réservée pour le futur -->
<!ELEMENT namespaces (namespace+)> <!-- liste des espaces de noms et préfixes -->
  <!ELEMENT namespace (#PCDATA)>     <!-- contient le préfixe de l'espace de noms -->
  <!ATTLIST namespace key CDATA #REQUIRED> <!-- numéro interne de l'espace de noms -->
<!ELEMENT page (title,id?,restrictions?,(revision|upload)*)>
  <!ELEMENT title (#PCDATA)>         <!-- Titre avec le préfixe de l'espace de noms -->
  <!ELEMENT id (#PCDATA)> 
  <!ELEMENT restrictions (#PCDATA)>  <!-- restrictions de page facultatives -->
<!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)>
  <!ELEMENT timestamp (#PCDATA)>     <!-- selon ISO8601 -->
  <!ELEMENT minor EMPTY>             <!-- marque mineure -->
  <!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)>

Exploiter l'export XML

Un grand nombre d'outils peuvent traiter le XML exporté. Si vous traitez un grand nombre de pages (par exemple un vidage complet) il est probable que vous ne pourrez pas faire tenir le document en mémoire principale et vous aurez donc besoin d'un analyseur basé sur SAX ou sur d'autres méthodes activées par événement.

Vous pouvez aussi utiliser des expressions régulières pour traiter directement des parties du code XML. Ceci peut être plus rapide que les autres méthodes mais n'est pas recommandé car difficile à maintenir.

Veuillez lister ici les méthodes et les outils qui traitent les exports XML :


Détails et conseils pratiques

  • Pour déterminer l'espace de noms d'une page vous devez identifier son titre avec les préfixes définis dans /mediawiki/siteinfo/namespaces/namespace
  • Les restrictions possibles sont
    • sysop - pages protégées

Pourquoi exporter ?

Pourquoi ne pas utiliser simplement un téléchargement dynamique de la base de données ?

Supposons que vous construisiez une fonction logicielle qui permette d'afficher des informations venant de Wikipedia. Si vous voulez que votre programme affiche l'information d'une manière différente de celle vue dans la version active, il vous faudra certainement le wikicode nécessaire pour le traduire, au lieu du HTML final.

De même, si vous souhaitez obtenir l'ensemble des données vous voudrez probablement les transférer de la manière la plus efficace possible. Les serveurs Wikimedia doivent réaliser une partie du travail de conversion du wikicode en HTML. Cela requiert du temps d'exécution, à la fois pour vous mais aussi pour les serveurs Wikimedia, et donc distribuer simplement toutes les pages n'est pas une manière de procéder.

Pour accéder à chaque article en XML, l'un après l'autre, allez sur Special:Export/Title_of_the_article

Voir aussi