# Pywikibot/harvest template.py

El script harvest_template.py es una herramienta poderosa dentro de Pywikibot que permite extraer información de plantillas en las páginas de Wikimedia y almacenarla en el sistema de datos estructurados de Wikidata. Este script es particularmente útil para automatizar la actualización de datos en Wikidata, facilitando la recolección de datos provenientes de plantillas en páginas de Wikipedia u otros proyectos Wikimedia. Los usuarios que trabajan con Wikidata pueden beneficiarse del uso de este script para mantener sus datos actualizados de forma eficiente y precisa.
En este subartículo, aprenderás a utilizar el script harvest_template.py, desde la configuración básica hasta su aplicación en tareas más avanzadas.

## Sección teórica

El script harvest_template.py funciona escaneando las plantillas dentro de páginas específicas de Wikimedia (Wikipedia, Wikisource, entre otros). Luego, extrae los valores que cumplen ciertos criterios (por ejemplo, propiedades de Wikidata) y los envía a Wikidata para su almacenamiento. Para funcionar correctamente, el script requiere que los usuarios definan las plantillas de las que se extraerá la información y las propiedades correspondientes de Wikidata.
Es importante tener en cuenta que la extracción de datos mediante este script es una tarea que puede afectar a un gran número de páginas. Por lo tanto, se recomienda tener experiencia previa con la edición de Wikidata y comprender cómo se enlazan las plantillas con las propiedades de Wikidata.

## Requisitos previos

Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:
* Conocimiento básico de Wikidata: Saber cómo funcionan las propiedades y las declaraciones en Wikidata.
* Pywikibot configurado correctamente: Deberás tener Pywikibot instalado y configurado para autenticarte en un proyecto Wikimedia. Si no lo has hecho, consulta esta guía de instalación y configuración.
* Permisos de edición en Wikidata: Asegúrate de tener los permisos necesarios para editar Wikidata.
* Acceso a plantillas en Wikipedia o algún otro proyecto Wikimedia: Necesitarás acceso a las páginas que contienen las plantillas de las que deseas extraer datos.

## Guía paso a paso

A continuación, se describe cómo ejecutar el script harvest_template.py con un ejemplo práctico:

### Paso 1: Identificar la plantilla y la propiedad de Wikidata

Antes de usar el script, debes saber qué plantilla y qué propiedad de Wikidata deseas vincular. Por ejemplo, si deseas extraer fechas de nacimiento de la plantilla {{Ficha de persona}} en Wikipedia y almacenarlas en la propiedad P569 de Wikidata (fecha de nacimiento).

### Paso 2: Ejecutar el script

El siguiente comando ejecuta el script para extraer la información de una plantilla específica y cargarla en Wikidata:
* -lang:es: Especifica el idioma del proyecto Wikimedia (español en este caso).
* -family:wikipedia: Indica el proyecto Wikimedia (Wikipedia en este caso).
* "Ficha de persona": Define la plantilla de la que se extraerá la información.
* "P569": Define la propiedad de Wikidata en la que se almacenarán los datos extraídos (Fecha de nacimiento).

### Paso 3: Revisar los cambios

El script te permitirá revisar los cambios propuestos antes de enviarlos a Wikidata. Asegúrate de verificar que los datos extraídos son correctos antes de proceder.

## Ejercicio práctico
### Tarea

Usa el script harvest_template.py para extraer información de la plantilla {{Ficha de película}} en Wikipedia en español y agregar los años de estreno (P577) en Wikidata.
* Ejecuta el script con el siguiente comando:
* Reflexiona sobre el proceso. ¿Qué dificultades encontraste al extraer los datos? ¿Los resultados fueron los esperados?

### Preguntas para reflexión

* ¿Cómo personalizarías el script para extraer información adicional como la duración de la película o el director?
* ¿Qué pasos tomarías si te encuentras con un valor incorrecto o incompleto?

## Opciones avanzadas y parámetros

El script harvest_template.py incluye varias opciones y parámetros avanzados que te permiten personalizar su comportamiento. Aquí exploraremos algunos de ellos:
* -always: Ejecuta el script sin pedir confirmación para cada cambio, útil cuando estás seguro de los datos que estás modificando.
* -summary: Permite agregar un resumen personalizado para los cambios realizados en Wikidata.
* -dry: Ejecuta el script en modo de prueba, mostrando los cambios sin hacer ediciones reales.

## Resolución de problemas comunes

Al utilizar el script harvest_template.py, podrías enfrentar algunos problemas comunes. A continuación se presentan algunos y cómo resolverlos:
* Problema: El script no extrae los datos correctamente.
** Solución: Verifica que la plantilla que estás utilizando coincida con la que el script busca y que los campos dentro de la plantilla contengan los datos deseados.
* Problema: El script no tiene permisos para editar en Wikidata.
** Solución: Asegúrate de estar autenticado correctamente en Wikidata y de tener los permisos de edición necesarios.

## Discusión y reflexión

Al usar el script, es importante reflexionar sobre los siguientes puntos:
* ¿Cómo podría automatizarse aún más el proceso de extracción de datos?
* ¿Qué mejoras sugieres para el script? ¿Cómo podría adaptarse a diferentes contextos y plantillas?
Estas preguntas están diseñadas para generar discusión en un entorno de aprendizaje colaborativo, animando a los usuarios a compartir sus experiencias y soluciones.

## Conclusión

En este subartículo, hemos aprendido cómo utilizar el script harvest_template.py de Pywikibot para extraer datos de plantillas y almacenarlos en Wikidata. Desde la configuración básica hasta las opciones avanzadas, este script es una herramienta fundamental para quienes buscan automatizar la actualización de datos en proyectos Wikimedia.

### Recursos adicionales

* Documentación oficial de Pywikibot
* Propiedades en Wikidata