Una aplicación web desarrollada en Streamlit que permite extraer metadatos de DOIs (Digital Object Identifiers) de forma automatizada utilizando la API de Crossref.
- 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
- 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
Puedes usar la aplicación directamente sin instalación en: https://doi-metadata-extractor.streamlit.app
- Python 3.7 o superior
- pip (gestor de paquetes de Python)
-
Clona el repositorio
git clone https://github.com/tu-usuario/doi-metadata-extractor.git cd doi-metadata-extractor
-
Crea un entorno virtual (recomendado)
python -m venv venv # En Windows venv\Scripts\activate # En macOS/Linux source venv/bin/activate
-
Instala las dependencias
pip install -r requirements.txt
-
Ejecuta la aplicación
streamlit run doi_metadata_extractor.py
La aplicación se abrirá automáticamente en tu navegador en http://localhost:8501
- 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
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
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
- Sube tu archivo
- Limpia y valida los DOIs
- Inicia la extracción
- Descarga los resultados
La aplicación genera archivos con las siguientes columnas:
doi
: DOI originaltitle
: Título del artículoabstract
: Resumen del artículoautor_1
aautor_5
: Autores principalesreference_count
: Número de referenciasis_referenced_by_count
: Número de citas recibidasindexed_date
: Fecha de indexación en Crossrefcreated_date
: Fecha de creación del registroissued_date
: Fecha de emisiónpublished_date
: Fecha de publicación
- 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
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
- 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
- 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
Las contribuciones son bienvenidas. Para contribuir:
- Fork el proyecto
- Crea una rama (
git checkout -b nueva_rama
) - Commit tus cambios (
git commit -m 'Agrega una nueva característica'
) - Push a la rama (
git push origin nueva_rama
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Si tienes preguntas, sugerencias o encuentras algún error, puedes:
- Contactar al desarrollador: [inktenorio@gmail.com]
- 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!