Jump to content

Ayuda:Exportar

From mediawiki.org
This page is a translated version of the page Help:Export and the translation is 100% complete.
PD Nota: Cuando editas esta página, aceptas liberar tu contribución bajo la licencia CC0. Para más información mira las páginas de ayuda de dominio público.
Algunas versiones antiguas de esta página fueron importadas bajo licencia CC BY-SA. Solo las contribuciones nuevas están en el dominio público (DP).
PD

Las páginas wiki se pueden exportar en un formato especial XML para luego importarlas en otra instalación de MediaWiki (en caso de que esta función esté habilitada y el usuario sea sysop en el wiki de destino) o utilizarlas de otra manera, por ejemplo, para analizar su contenido. Consulta también Canales de sindicación sobre cómo exportar otra información distinta de las páginas y Help:Import sobre cómo importar páginas.

Cómo exportar

Hay al menos cuatro formas de exportar páginas:

  • Pega los nombres de los artículos en el cuadro en Special:Export o utiliza //www.mediawiki.org/wiki/Special:Export/FULLPAGENAME.
  • El script de copia de seguridad dumpBackup.php vuelca todas las páginas wiki en un archivo XML. dumpBackup.php solo funciona en MediaWiki 1.5 o más reciente. Debes tener acceso directo al servidor para ejecutar este script. Los volcados de proyectos de Wikimedia se ponen a disposición de los usuarios de forma regular en https://dumps.wikimedia.org/.
  • Utiliza el marco de trabajo Pywikibot. Esto no se detallará aquí.

Por defecto, solo se incluye la versión actual de la página. Opcionalmente, puedes obtener todas las versiones con su fecha, hora, nombre de usuario y resumen de edición. Opcionalmente, también se exportan las últimas versiones de todas las plantillas a las que se llama directa o indirectamente. Si importas un volcado que no incluya plantilla, las páginas resultantes probablemente no se muestren correctamente si las plantillas que necesitan no existen en el wiki de destino.

Además, puedes copiar la base de datos SQL. Así es como los volcados de la base de datos se hicieron disponibles a los usuarios antes de MediaWiki 1.5, y aquí no se explicará más detalladamente.

Utilizar 'Special:Export'

Para exportar todas las páginas de un espacio de nombres, por ejemplo.

Obtener los nombres de las páginas que exportar

Creo que es mejor aportar un ejemplo, porque la descripción a continuación parece bastante poco clara.

  1. Ve a Special:Allpages y selecciona el artículo/archivo deseado.
  2. Copia la lista de nombres de páginas a un editor de texto
  3. Pon cada nombre de página en una línea separada
    1. Puedes conseguir esto relativamente rápido si copias la parte de la página renderizada con los nombres deseados y lo pegas en, digamos, MS Word - utiliza pegado especial como texto sin formato - y luego abre la función de reemplazo (Ctrl+H), introduce ^t en Buscar, ^p en Reemplazar y luego pulsa el botón Reemplazar todo. (Esto se basa en las tabulaciones entre los nombres de las páginas, que son habitualmente el resultado del hecho de que los nombres de las páginas están entre etiquetas td en el código fuente HTML.)
    2. El editor de texto Vim también permite una forma fácil de arreglar los saltos de línea: después de pasar la lista completa, ejecuta el comando :1,$s/\t/\r/g para reemplazar todos los tabuladores por retornos de carro y a continuación :1,$s/^\n//g para eliminar todas las líneas que solo contengan un carácter de nueva línea.
    3. Otro método consiste en copiar el texto con formato en cualquier editor que exponga el HTML. Elimina todas las etiquetas ‎<tr> y ‎</tr> y reemplaza todas las etiquetas ‎<td> por <tr><td> y las etiquetas ‎<td> por </td></tr>; entonces el HTML será interpretado en el formato requerido.
    4. Si tienes acceso a la shell y a MySQL en tu servidor, puedes utilizar este script:
mysql -umike -pmikespassword -hlocalhost wikidbname 
select page_title from wiki_page where page_namespace=0
EOF

Nota: reemplaza mike y mikespassword por tus credenciales. Además, este ejemplo muestra tablas con el prefijo wiki_.

  1. Prefija el espacio de nombres a los nombres de las páginas (por ejemplo, 'Help:Contents') a menos que el espacio de nombres seleccionado sea el principal.
  2. Repite los pasos anteriores para los demás espacios de nombres (por ejemplo, Category:, Template:, etc.)

Un script similar para bases de datos PostgreSQL tiene este aspecto:

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

Nota: reemplaza wikiuser por el tuyo, la base de datos te pedirá la contraseña. Este ejemplo muestra tablas sin el prefijo wiki_ y con el espacio de nombres especificado como parte del nombre de la tabla.

Realiza la exportación

  • Ve a Special:Export y pega los nombres de todas las páginas en el cuadro de texto asegurándote de que no haya líneas en blanco.
  • Haz clic en Exportar
  • Guarda el XML resultante en un archivo mediante la funcionalidad de tu navegador.

Y por último...

  • Abre el archivo XML en un editor de texto. Desplázate al final para comprobar si hay mensajes de error.

Ahora puedes utilizar este archivo XML para realizar una importación.

Exportar el historial completo

Exportar el historial de revisiones puede ser deseable para preservar la información y la atribución de la autoría. Una casilla de verificación en la interfaz Special:Export sirve para seleccionar si deseas exportar el historial completo (todas las versiones de un artículo) o la versión más reciente de los artículos. Se devuelve un máximo de 100 revisiones; se pueden solicitar otras revisiones tal como se detalla en Parameters to Special:Export .

Formato de exportación

El formato del archivo XML que recibes es el mismo en todos los sentidos. Está codificado en el esquema XML en https://www.mediawiki.org/xml/export-0.11.xsd Este formato no está destinado a la visualización en un navegador web. Algunos navegadores mostrarán un XML embellecido con enlaces + y - para mostrar u ocultar las partes seleccionadas. Alternativamente, se puede ver el código fuente XML mediante la funcionalidad «Ver código fuente» del navegador, o con un programa de tu elección tras guardar localmente el archivo XML. Si lees directamente el código fuente XML, no será difícil encontrar el wikitexto real. Si no utilizas un editor especual XML, < y > aparecerán como &lt; y &gt; para evitar conflictos con las etiquetas XML; para evitar ambigüedades, & estará codificado como &amp;.

En la versión actual, el formato de exportación no contiene un reemplazo XML del marcado wiki (véase Wikipedia DTD para una propuesta anterior). Obtendrás sencillamente el wikitexto que obtienes al editar el artículo.

Ejemplo

  <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

He aquí una versión breve y no oficial del formato de la [[w:es:Definición de tipo de documento |Definición de Tipo de Documento]]. Si no sabes lo que es una DTD, ignóralo.

<!ELEMENT mediawiki (siteinfo,page*)>
<!-- version contiene el número de versión del formato (actualmente 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)>      <!-- Nombre del wiki -->
<!ELEMENT base (#PCDATA)>          <!-- URL de la página principal -->
<!ELEMENT generator (#PCDATA)>     <!-- Cadena de la versión de MediaWiki -->
<!ELEMENT case (#PCDATA)>          <!-- Indica cómo gestionar las mayúsculas y minúsculas en los nombres de las páginas -->
   <!-- posibles valores: 'first-letter' | 'case-sensitive'
        la opción 'Case-insensitive' está reservada para el futuro -->
<!ELEMENT namespaces (namespace+)> <!-- Lista de espacios de nombres y prefijos -->
  <!ELEMENT namespace (#PCDATA)>     <!-- Contiene un prefijo de espacio de nombres -->
  <!ATTLIST namespace key CDATA #REQUIRED> <!-- Número interno del espacio de nombres -->
<!ELEMENT page (title,id?,restrictions?,(revision|upload)*)>
  <!ELEMENT title (#PCDATA)>         <!-- Título con el prefijo del espacio de nombres -->
  <!ELEMENT id (#PCDATA)> 
  <!ELEMENT restrictions (#PCDATA)>  <!-- Restricciones opcionales de página -->
<!ELEMENT revision (id?,timestamp,contributor,minor?,comment?,text)>
  <!ELEMENT timestamp (#PCDATA)>     <!-- Según ISO8601 -->
  <!ELEMENT minor EMPTY>             <!-- Marca menor -->
  <!ELEMENT comment (#PCDATA)> 
  <!ELEMENT text (#PCDATA)>          <!-- Wikisintaxis -->
  <!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)>

Procesar la exportación XML

Hay muchas herramientas capaces de procesar el XML exportado. Si vas a procesar un gran número de páginas (por ejemplo, un volcado completo), probablemente no podrás obtener el documento en la memoria principal, así que necesitarás un analizador sintáctico basado en SAX u otros métodos dirigidos por eventos.

También puedes utilizar expresiones regulares para procesar directamente partes del código XML. Esto puede ser más rápido que otros métodos, pero no está recomendado porque es difícil de mantener.

Por favor, enumera aquí los métodos y herramientas para procesar la exportación XML:


Detalles y consejos prácticos

  • Para determinar el espacio de nombres de una página, debes hacer corresponder su título con los prefijos definidos en /mediawiki/siteinfo/namespaces/namespace
  • Las posibles restricciones son
    • sysop - Páginas protegidas

Por qué exportar

¿Por qué no utilizar sencillamente una descarga dinámica de la base de datos?

Supón que estás creando un componente de software que en determinados puntos muestra información procedente de Wikipedia. Si quieres que tu programa muestre la información de una manera diferente de la que se puede ver en la versión en vivo, probablemente necesitarás el wikicódigo utilizado para introducirla en lugar del HTML final.

Además, si quieres obtener todos los datos, probablemente querrás transferirlos de la forma más eficiente posible. Los servidores de Wikimedia tienen que trabajar bastante para convertir el wikicódigo en HTML. Esto lleva tiempo, tanto para ti como para los servidores de Wikimedia, por lo que rastrear todas las páginas sin más no es el camino a seguir.

Para acceder a cualquier artículo en XML, uno a uno, ve a Special:Export/Title_of_the_article

Véase también