Este proyecto realiza el scraping de datos de tesis de la plataforma Cybertesis de la Universidad Nacional Mayor de San Marcos (UNMSM), extrayendo metadata relevante de cada tesis de la Facultad de Ingeniería de Sistemas e Informática y guardándola en un archivo en formato BibTeX.
Este script requiere los siguientes paquetes:
selenium
: Para automatizar la navegación web.beautifulsoup4
: Para parsear el contenido HTML de las páginas.pybtex
: Para generar archivos de bibliografía en formato BibTeX.
Puedes instalar las dependencias usando pip
:
pip install selenium beautifulsoup4 pybtex
Para ejecutar el script:
- Clona este repositorio o descarga el archivo
scraper.py
. - Asegúrate de que las dependencias están instaladas.
- Ejecuta el script:
python bibliofisi.py
- Navegación por las páginas de Cybertesis: El script accede automáticamente a las páginas de la colección de tesis y extrae enlaces a tesis individuales.
- Extracción de Metadata: De cada tesis, se extraen los siguientes datos:
- Autor
- Asesor
- Año de emisión
- Publicador
- Materias de estudio
- Nombre del título (grado académico)
- Generación de archivos BibTeX: Toda la metadata se guarda en un archivo llamado
bibliofisi.bib
.
max_pages
: Define el número máximo de páginas a procesar. Por defecto, está configurado a 10.filename
: Nombre del archivo de salida para los datos en formato BibTeX. El valor por defecto esbibliofisi.bib
(si se desea tener más .bib al cambiar el enlace de obtención de tesis es necesario el cambio del archivo de salida).driver.get("https://cybertesis.unmsm.edu.pe/collection/...)
: Si se desea obtener tesis de otro campo solo se cambia el enlace.
- Funciones principales
fetch_thesis_metadata()
: Extrae y organiza la metadata de una tesis.save_bibtex_file(metadata, filename)
: Guarda la metadata en un archivo BibTeX.navigate_to_main_page()
: Navega a la página principal de la colección de tesis.
- Función principal (
main
)
- Orquesta el proceso de scraping, incluyendo la navegación entre páginas y la extracción de datos.
- Manejo de errores
- El script maneja excepciones para errores comunes como la falta de conexión, fallos en el acceso a enlaces, o tiempo de espera al cargar elementos de la página.
A continuación, un ejemplo de cómo se vería una entrada BibTeX generada:
@thesis{Leguía2002,
author = "Leguía García, Guillermo",
advisor = "Gil Calvo, Rubén Alexander",
year = "2002",
title = "Papel de los sistemas de información en la investigación de mercado en empresas de servicios",
type = "info:eu-repo/semantics/bachelorThesis",
institution = "Universidad Nacional Mayor de San Marcos",
subject = "Investigación de mercados, Tecnología de la información, Administración de recursos de información",
degree_name = "Ingeniero de Sistemas"
}