The Clean Shot

The Clean Shot

Tutoriales R

Cómo Extraer Datos De Los PDFS ACB

Y de cómo El Rincón del Supermanager se convierte en el Rincón del Superheroe cuando llega la pretemporada de la ACB.

Avatar de Ivo Villanueva
Ivo Villanueva
oct 03, 2025
∙ De pago
“… y sobre esta roca edificaré mi iglesia; y las puertas del Hades no prevalecerán contra ella.” — Mateo 16:18

La pretemporada siempre es un suplicio para extraer datos. Las estadísticas de los partidos de preparación, ACB las incluye con un enlace dentro de la crónica (a veces) que, al pincharlo, nos lleva a un PDF en el mejor de los casos o a un JPG en el peor. En este contexto además nos podemos encontrar que el acta sea en el formato de la ACB, que de paso hay que decir está fenomenal, pero en muchos otros son cada uno de su padre y de su madre.

Tanto suplicio es, que yo hace algunos años lo di por imposible o inabarcable. Pero en esto apareció El Rincón del SuperManager y su farol como el superhéroe salvador y de manera altruista y artesana (a manini) decidió salvarnos a todos de esta época oscura de información o desinformación

Para pagar en parte mi deuda, voy a explicar o tratar de explicar y mecanizar, cómo convertir estos archivos del demonio en algo manejable y trabajable.

Comencemos

Lo primero es saber dónde extraer los enlaces de los partidos de pretemporada. Así que nos vamos a la página oficial de ACB

Tenemos que sacar los enlaces de los links donde pone “crónica”. Como siempre, seleccionamos las librerías y tecleamos el siguiente código:

La madre del cordero aquí es la libreria tabulapdf, si no la tienes:

# cualquiera de las dos
install.packages(”tabulapdf”)

# o
install.packages(”tabulapdf”, repos = c(”https://ropensci.r-universe.dev”, “https://cloud.r-project.org”))

Una vez que ya tenemos la librería:

library(tidyverse)
library(tabulapdf)
library(rvest)
library(janitor)


links <- “https://acb.com/es/tabla-pretemporada/2025-26” %>%
  read_html() %>% 
  html_elements(”td a”) %>% 
  html_attr(”href”) 

Esto nos da una lista de 113 enlaces como esta.

Ahora, una vez que tenemos los enlaces, creamos una función que nos devuelva un dataframe con los enlaces de descarga del archivo (si no hay, veremos NA).

 links_fn <- function(links){
df = tibble(
  enlaces = links %>% 
  read_html() %>% 
  html_element(”[itemprop=’articleBody’] a”)%>% 
  html_attr(”href”))
return(df)
}

links_df <- map_df(links, links_fn)

Vale, y aquí ya empezamos con las complicaciones: como se ve, hay archivos .pdf y archivos .jpg.

¿Te gusta este contenido? Dame, por favor, un empujonsito con una suscripción de pago.

Continúa leyendo con una prueba gratuita de 7 días

Suscríbete a The Clean Shot para seguir leyendo este post y obtener 7 días de acceso gratis al archivo completo de posts.

¿Ya eres suscriptor de pago? Iniciar sesión
© 2025 The Clean Shot
Privacidad ∙ Términos ∙ Aviso de recolección
Crea tu SubstackDescargar la app
Substack es el hogar de la gran cultura