Skip to content

Tengorio/doi_metadata_extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 DOI Metadata Extractor

Una aplicación web desarrollada en Streamlit que permite extraer metadatos de DOIs (Digital Object Identifiers) de forma automatizada utilizando la API de Crossref.

🚀 Características

  • Extracción masiva: Procesa múltiples DOIs desde archivos CSV o Excel
  • Metadatos completos: Extrae títulos, abstracts, autores, fechas y métricas de citación
  • Procesamiento paralelo: Utiliza hilos múltiples para acelerar la extracción
  • Validación de DOIs: Limpia y valida automáticamente los DOIs
  • Configuración flexible: Parámetros ajustables para optimizar el rendimiento
  • Exportación múltiple: Descarga resultados en formato Excel o CSV
  • Interfaz intuitiva: Diseño limpio y fácil de usar

📋 Campos Extraídos

  • Título del artículo
  • Abstract (resumen)
  • Autores (hasta 5 autores principales)
  • Conteo de referencias
  • Conteo de citas (is-referenced-by-count)
  • Fecha de indexación
  • Fecha de creación
  • Fecha de emisión
  • Fecha de publicación

🌐 Aplicación en Línea (gratis)

Puedes usar la aplicación directamente sin instalación en: https://doi-metadata-extractor.streamlit.app

🛠️ Instalación Local (opcional)

Requisitos Previos

  • Python 3.7 o superior
  • pip (gestor de paquetes de Python)

Pasos de Instalación

  1. Clona el repositorio

    git clone https://github.com/tu-usuario/doi-metadata-extractor.git
    cd doi-metadata-extractor
  2. Crea un entorno virtual (recomendado)

    python -m venv venv
    
    # En Windows
    venv\Scripts\activate
    
    # En macOS/Linux
    source venv/bin/activate
  3. Instala las dependencias

    pip install -r requirements.txt
  4. Ejecuta la aplicación

    streamlit run doi_metadata_extractor.py

La aplicación se abrirá automáticamente en tu navegador en http://localhost:8501

📖 Cómo Usar la App

1. Preparar tus Datos

  • Crea un archivo CSV o Excel con una columna que contenga DOIs
  • Los DOIs pueden estar en cualquier formato (con o sin https://doi.org/)
  • Nombra la columna como 'DOI' o 'doi' para detección automática

2. Configurar Parámetros

En la barra lateral puedes ajustar:

  • Número de bloques: Divide el procesamiento para mejor gestión
  • Hilos simultáneos: Controla la velocidad de procesamiento
  • Reintentos: Número de intentos por DOI en caso de error
  • Delays: Pausas para respetar límites de la API

3. Seleccionar Campos

Elige qué metadatos extraer para optimizar el tiempo de procesamiento:

  • Título y abstract para análisis de contenido
  • Autores para estudios bibliométricos
  • Fechas para análisis temporal
  • Métricas de citación para análisis de impacto

4. Procesar

  1. Sube tu archivo
  2. Limpia y valida los DOIs
  3. Inicia la extracción
  4. Descarga los resultados

📊 Formato de Salida

La aplicación genera archivos con las siguientes columnas:

  • doi: DOI original
  • title: Título del artículo
  • abstract: Resumen del artículo
  • autor_1 a autor_5: Autores principales
  • reference_count: Número de referencias
  • is_referenced_by_count: Número de citas recibidas
  • indexed_date: Fecha de indexación en Crossref
  • created_date: Fecha de creación del registro
  • issued_date: Fecha de emisión
  • published_date: Fecha de publicación

⚙️ Configuración Avanzada

Optimización de Rendimiento

  • Pocos DOIs (< 100): Usa más hilos (5-10) y menos bloques (1-2)
  • Muchos DOIs (> 1000): Usa menos hilos (2-3) y más bloques (5-10)
  • Conexión lenta: Aumenta los delays y reduce hilos

Gestión de Rate Limits

La API de Crossref tiene límites de velocidad. La aplicación incluye:

  • Delays configurables entre requests
  • Pausas entre bloques de procesamiento
  • Sistema de reintentos automático
  • Procesamiento por lotes

🔧 Tecnologías Utilizadas

  • Streamlit: Framework de aplicación web
  • Pandas: Manipulación y análisis de datos
  • crossref-commons: Cliente Python para API de Crossref
  • openpyxl: Lectura/escritura de archivos Excel
  • concurrent.futures: Procesamiento paralelo

📝 Limitaciones

  • Dependiente de la disponibilidad de la API de Crossref
  • Algunos DOIs pueden no tener todos los metadatos disponibles
  • Rate limits de la API pueden afectar la velocidad de procesamiento
  • La calidad de los abstracts depende de lo que proporcione el editor

🤝 Contribuciones

Las contribuciones son bienvenidas. Para contribuir:

  1. Fork el proyecto
  2. Crea una rama (git checkout -b nueva_rama)
  3. Commit tus cambios (git commit -m 'Agrega una nueva característica')
  4. Push a la rama (git push origin nueva_rama)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

📧 Contacto

Si tienes preguntas, sugerencias o encuentras algún error, puedes:

🙏 Agradecimientos

  • Crossref por proporcionar la API gratuita
  • Streamlit por el excelente framework
  • La comunidad de código abierto por las librerías utilizadas

⭐ Si esta herramienta te resulta útil, ¡considera darle una estrella al repositorio!

About

Streamlit web-app que permite extraer metadatos de DOIs vía Crossref API.

Topics

Resources

License

Stars

Watchers

Forks

Languages