Blog

Descarga en PDF cientos de libros de Springer, con R

Probablemente te hayas encontrado con que Springer lanzó unos 500 libros de forma gratuita ante la pandemia del COVID-19 para que tengas mucho que leer durante la cuarentena. Estos libros de texto estarán disponibles de forma gratuita hasta finales de julio.

Si quieres aprovechar este beneficio, y tienes por lo menos un poco de experiencia trabajando con R (de no estar familiarizado, podrías tomar un curso de Introducción a Data Science con R.), te presento un paquete que te puede ahorrar valioso tiempo: springerQuarantineBooksR, desarrollado por Renan Xavier Cortes.

Este paquete permite descargar fácilmente todos los libros de Springer disponibles de forma gratuita.

¿Cómo instalo el paquete?

Debes crear un nuevo script o ejecutar en consola la instalación del paquete devtools, una vez hecho esto deberás instalar el paquete springerQuarantineBooksR desde GitHub

# Instalación de devtools y descargar paquete
install.packages(“devtools”) devtools::install_github(“renanxcortes/springerQuarantineBooksR”, force=TRUE)
library(springerQuarantineBooksR)

¿Cómo descargo todos los libros?

Debes establecer la ruta donde deseas guardar todos los libros con la función setwd() y luego podrás descargarlos todos a la vez con la función download_springer_book_files() donde puedes añadir el argumento filetype para especificar si deseas sólo el formato pdf o epub si deseas en este formato, o reemplazar por both, si deseas descargarlos en ambos formatos.

# Dónde deseas guardar los libros
setwd (“folder_destino/tu_ruta_de_destino/”)# Descargar todos los libros
download_springer_book_files(filetype = "pdf")

Esto puede llevarte varios minutos dependiendo la velocidad de tu conexión a internet.

Si ejecutaste hasta aquí, una vez finalizado, encontrarás todos los libros descargados en una carpeta llamada “springer_quarantine_books”, en el dentro del directorio que estableciste previamente, organizada por categorías.

Crea una tabla para consultar los libros de Springer

Posiblemente te sería útil tener una lista de los libros publicados con detalles descriptivos, antes o después de descargarlos. Para esto, puedes cargar una tabla que contenga todos los títulos disponibles por Springer con la función download_springer_table ()

# Vamos a crear una tabla con los títulos de Springer
miTabla_springer <- download_springer_table()

Esta tabla se puede mejorar con el paquete DT para mantener un mínimo de información, y permitir realizar búsquedas por su título, autor o año, permitir la descarga de la lista, y hacer que se pueda hacer clic en los enlaces de Springer, por ejemplo.

install.packages(“DT”) 
library(DT) miTabla_springer$open_url <- paste0(
'<a target="_blank" href="', # opening HTML tag
miTabla_springer$open_url, # href link
'">URL_En_Springer</a>' # closing HTML tag
)# Vamos a mantener sólo información relevante
miTabla_springer <- miTabla_springer[, c(1:3, 19, 20)]datatable(miTabla_springer,# Remover los números de fila
rownames = FALSE, # Agregar filtro en la parte superior de las columnas
filter = “top”, # Añadir los botones de descarga de tabla
extensions = “Buttons”,
options = list(
autoWidth = TRUE, # Ubicación de los botones de descarga de tabla, y formatos disponibles
dom = “Blfrtip”,
buttons = c(“copy”, “csv”, “excel”, “pdf”, “print”),# Mostrar las primeras 20 entradas, por default despliega 10 pageLength = 5, # Ordenar la columna de Título de libro, de manera ascendente
order = list(0, “asc”)
),
escape = FALSE
)

Si ejecutas hasta aquí, ahora tendrás lista tu tabla para poder consultar los libros disponibles en Springer.

Te invito a ver el resultado obtenido de la tabla funcionando aquí: https://rpubs.com/cosmoduende/libros-springer.

¿Y si sólo quiero ciertos libros de un tema?

Si quizás te interesa descargar por ejemplo sólo los libros de matemáticas, o medicina, o programación, o algo muy específico, puedes filtrar la columna de títulos de libro por palabras clave, para que sólo descargues aquellos libros que realmente son de tu interés. Por ejemplo, digamos que sólo quieres descargar los libros relacionados con Python.

library(dplyr)
libros_especificos <- miTabla_springer %>%
filter(str_detect(

# Busca en la columna "book_title" la palabra en relación con los libros de tu interés
book_title,
"Python"
)) %>%
pull(book_title)

Como verás ahora sólo estarás descargando los títulos referentes a Pyhon.

Así que, a leer mucho (o acumular mucho en nuestro catálogo personal que abriremos la próxima pandemia), en esta cuarentena. Felices descargas, amigos.

Aquí pueden encontrar el código completo: https://github.com/cosmoduende/descarga-pdf-springer

Te invito también a seguirme en Medium

Si te encuentras interesado en aprender a profundidad a usar R para análisis de datos, análisis estadístico y/o científico, puedes tomar el curso de “Introducción a Data Science con R/“.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *