Python WebScraping
Python WebScraping
Python
Guía Teórica – Módulo 4
Daniel Carreño
SPORTS DATA CAMPUS – MASTER EN PYTHON AVANZADO
Tabla de contenido
Introducción al Web Scraping ......................................................................................... 9
1.1- Qué es el Web Scraping .................................................................................. 9
¿Qué es? ................................................................................................................ 9
¿Por qué usarlo? ..................................................................................................... 9
¿Cómo funciona?.................................................................................................... 9
Ventajas ................................................................................................................. 9
Herramientas comunes (en Python) ........................................................................ 9
Ejemplo práctico .................................................................................................... 9
Web Scraping vs API.............................................................................................. 10
En el deporte ........................................................................................................ 10
Riesgos y cuidados ............................................................................................... 10
En resumen .......................................................................................................... 10
1.2- Aplicaciones del Web Scraping en el Deporte ................................................ 10
Ejemplos por deporte............................................................................................ 10
Caso práctico ....................................................................................................... 11
Conclusión ........................................................................................................... 11
1.3- ¿Qué es una página web? (Entender lo que vas a scrapear) ............................ 11
¿Qué contiene una página web? ............................................................................ 11
Analogía ............................................................................................................... 11
¿Y qué hace el scraper? ............................................................................................ 11
Ejemplo HTML simplificado ................................................................................... 12
¿Qué significan <tr>, <th> y <td>? .......................................................................... 12
En resumen: .......................................................................................................... 12
Scraping explicado línea por línea: ........................................................................ 12
1.4- Arquitectura Cliente-Servidor: El Baile Digital ................................................ 13
¿Qué es? .............................................................................................................. 13
¿Qué pasa en scraping? ........................................................................................ 13
Ejemplo ................................................................................................................ 13
Importancia para scraping..................................................................................... 13
Resumen .............................................................................................................. 13
1.5- HTML y CSS: El Esqueleto y el Vestuario de la Web ........................................ 13
¿Qué es HTML? ..................................................................................................... 13
¿Qué es CSS? ....................................................................................................... 14
Ejemplo básico de HTML ....................................................................................... 14
P á g i n a 1 | 49
Cómo leerlo desde Python .................................................................................... 14
¿Qué debes saber de HTML para scraping? ............................................................ 14
Resumen .............................................................................................................. 14
1.6- URL y su estructura: El mapa del tesoro......................................................... 15
¿Qué es una URL? ................................................................................................. 15
Ejemplo ................................................................................................................ 15
¿Por qué es importante para scraping? .................................................................. 15
Ejemplo de generación dinámica de URLs ............................................................. 15
Resumen .............................................................................................................. 15
1.7- Tipos de Web Scraping: Elige la estrategia correcta ........................................ 16
Comparativa de tipos de Web Scraping.................................................................. 16
Resumen .............................................................................................................. 16
1.8- Pasos del Web Scraping: Tu estrategia de juego ............................................. 16
1. Planificación ..................................................................................................... 17
2. Inspección de la página ..................................................................................... 17
3. Escribir el scraper ............................................................................................. 17
4. Limpieza de datos ............................................................................................. 17
5. Almacenamiento .............................................................................................. 17
6. Automatización ................................................................................................. 17
Ejemplo simple del flujo: ....................................................................................... 18
Resumen .............................................................................................................. 18
1.9- XPath: Tu GPS para encontrar datos .............................................................. 18
¿Qué es XPath? ..................................................................................................... 18
Ejemplo HTML: ..................................................................................................... 18
XPath para obtener los puntos de LeBron:.................................................................. 19
XPath vs selectores CSS........................................................................................ 19
¿Cómo usarlo en scraping? ................................................................................... 19
Con lxml ............................................................................................................... 19
¿Cómo obtener un XPath? ..................................................................................... 19
Resumen .............................................................................................................. 19
1.10- Tipos de páginas web: Eligiendo la estrategia correcta ................................... 20
1. Páginas Estáticas .............................................................................................. 20
2. Páginas Dinámicas ............................................................................................ 20
3. Páginas con API................................................................................................. 20
4. Infinite Scroll..................................................................................................... 20
5. Sitios Protegidos ............................................................................................... 20
P á g i n a 2 | 49
Resumen .............................................................................................................. 21
1.11 – Consideraciones éticas y legales: Jugando limpio ............................................ 21
¿Es legal? ............................................................................................................. 21
¿Qué es robots.txt? ............................................................................................... 21
Buenas prácticas .................................................................................................. 21
Casos problemáticos ............................................................................................ 21
En resumen .......................................................................................................... 22
2.1- Herramientas para Web Scraping con Python ......................................................... 22
1. Requests .......................................................................................................... 22
2. BeautifulSoup ................................................................................................... 22
3. lxml .................................................................................................................. 22
4. Selenium .......................................................................................................... 23
5. Pandas (read_html) ........................................................................................... 23
2.2- Comparación de herramientas: ¿cuál usar y cuándo? ......................................... 23
Tabla de comparación .............................................................................................. 24
En resumen .......................................................................................................... 24
3. Web Scraping: Una sola página estática .................................................................... 24
3.1 – pandas.read_html(): Una herramienta simple pero poderosa ............................. 24
¿Qué es? .............................................................................................................. 24
Uso básico ........................................................................................................... 24
Ventajas ............................................................................................................... 24
Desventajas ......................................................................................................... 25
Consejos avanzados ............................................................................................. 25
Cuándo no usarlo ................................................................................................. 25
3.2 – requests: Tu pase VIP al contenido web ............................................................. 25
¿Qué es? .............................................................................................................. 25
Uso básico ........................................................................................................... 25
Ventajas ............................................................................................................... 25
Consejos avanzados ............................................................................................. 25
Cuándo evitarlo .................................................................................................... 25
3.3 – lxml: El analizador de alta velocidad .................................................................. 25
¿Qué es? .............................................................................................................. 25
Uso básico ........................................................................................................... 26
Ventajas ............................................................................................................... 26
Limitaciones......................................................................................................... 26
Cuándo evitarlo .................................................................................................... 26
P á g i n a 3 | 49
3.4 – BeautifulSoup: El chef experto en datos web ..................................................... 26
¿Qué es? .............................................................................................................. 26
Uso básico ........................................................................................................... 26
Ventajas ............................................................................................................... 26
Consejos avanzados ............................................................................................. 26
Cuándo evitarlo .................................................................................................... 27
Comparación rápida (Resumen de este bloque) ........................................................ 27
3.5 – XPath Avanzado: Precisión quirúrgica en la extracción ....................................... 27
¿Qué es XPath avanzado?...................................................................................... 27
Técnicas avanzadas con ejemplos ......................................................................... 27
Recomendaciones ................................................................................................ 28
En resumen .......................................................................................................... 28
4. Web Scraping: Paginación ........................................................................................ 28
4.1 – Técnicas de paginación..................................................................................... 28
¿Qué es la paginación? ......................................................................................... 28
Tipos comunes de paginación ............................................................................... 28
Código ejemplo: paginación con bucle .................................................................. 28
4.2 – Manejo de múltiples páginas ............................................................................ 29
Consejos prácticos ............................................................................................... 29
En resumen .......................................................................................................... 29
5 – Web Scraping: Selenium ......................................................................................... 29
¿Qué es Selenium?................................................................................................... 29
5.1 – Sitios Web Dinámicos y JavaScript .................................................................... 29
¿Cómo detectarlo? ............................................................................................... 29
5.2 – Introducción a Selenium ................................................................................... 29
Instalación rápida ................................................................................................. 29
Uso básico ........................................................................................................... 30
5.3 – Carga dinámica: scroll, botones, espera ............................................................ 30
Simular clic: ......................................................................................................... 30
Simular scroll: ...................................................................................................... 30
Esperar:................................................................................................................ 30
5.4 – Acciones típicas con Selenium ......................................................................... 30
5.5 – Descarga automática del WebDriver + Headless mode ...................................... 30
Descargar WebDriver automáticamente: ............................................................... 30
Headless (sin abrir ventana): ................................................................................. 31
5.6 – Scrolling avanzado y ejecución de JavaScript..................................................... 31
P á g i n a 4 | 49
5.7 – Scrolling Suavizado (Smooth)............................................................................ 31
5.8 – Formularios y login ........................................................................................... 31
5.9 – Modo incógnito ................................................................................................ 31
5.10 – Páginas caóticas y XPaths personalizados ....................................................... 31
5.11 – Selenium con proxies ..................................................................................... 31
5.12 – Recomendaciones prácticas........................................................................... 32
En resumen .......................................................................................................... 32
6 – Web Scraping Nivel 4: Evitando Detección ............................................................... 32
6.1 – Scraping en la nube .......................................................................................... 32
6.2 – Uso de proxies .................................................................................................. 32
6.3 – IPs aleatorias (random proxy pool) .................................................................... 32
6.4 – Headers personalizados ................................................................................... 32
6.5 – Manejo de cookies............................................................................................ 33
6.6 – Time.sleep() ..................................................................................................... 33
6.7 – WebDriverWait (mejor que sleep) ...................................................................... 33
6.8 – Randomización del tiempo ............................................................................... 33
6.9 – Concurrencia (opcional) ................................................................................... 33
Consideraciones éticas ........................................................................................ 34
7 – Web Scraping Nivel 5: Scraping por API .................................................................... 34
¿Qué es una API? .................................................................................................. 34
¿Ventajas de usar APIs?......................................................................................... 34
7.1 – Revisar requerimientos en el navegador ............................................................ 34
7.2 – Extracción de <iframe> ..................................................................................... 34
7.3 – Extracción desde etiquetas <script>.................................................................. 34
7.4 – requests-html para carga dinámica ................................................................... 34
En resumen .......................................................................................................... 35
8 – Web Scraping Nivel 6: Cookies, Autenticación y Captchas ....................................... 35
8.1 – Aceptación de Cookies ..................................................................................... 35
8.2 – Tipos de Autenticación ..................................................................................... 35
a) Autenticación básica HTTP ................................................................................ 35
b) Autenticación con formularios........................................................................... 35
c) Autenticación OAuth ......................................................................................... 36
d) Autenticación por token .................................................................................... 36
8.3 – Detección y uso de cookies de autenticación .................................................... 36
8.4 – Manejo de sesiones .......................................................................................... 36
8.5 – Resolución de captchas ................................................................................... 36
P á g i n a 5 | 49
9 – Web Scraping Nivel 7: Cloudflare............................................................................. 36
9.1 – Extracción de sitios protegidos por Cloudflare ................................................... 36
9.2 – Uso de cloudscraper ........................................................................................ 37
10 – Web Scraping Nivel 8: Descarga de Archivos Multimedia ........................................ 37
10.1 – Descarga de Imágenes.................................................................................... 37
10.2 – Descarga de PDFs, documentos, etc. .............................................................. 37
10.3 – Descarga de videos ........................................................................................ 37
11 – Web Scraping Responsable y Ético ........................................................................ 38
11.1 – ¿Por qué es importante? ................................................................................. 38
11.2 – Buenas prácticas ............................................................................................ 38
11.3 – Controlar velocidad ........................................................................................ 38
12 – Paralelización en Web Scraping ............................................................................. 38
12.1 – Técnicas comunes .......................................................................................... 38
1. Multithreading................................................................................................... 38
2. Multiprocessing ................................................................................................ 39
3. Asincronía con asyncio...................................................................................... 39
Consideraciones .................................................................................................. 39
13 – Puntos de Control: Logging y Alertas ...................................................................... 39
13.1 – Logging (registro de eventos) ........................................................................... 40
13.2 – Alertas ........................................................................................................... 40
13.3 – Puntos clave a registrar ................................................................................... 40
13.4 – Monitoreo de rendimiento ............................................................................... 40
13.5 – Resumen periódico ........................................................................................ 40
14 – Automatización de Descarga Periódica .............................................................. 40
14.1 – Programación automática............................................................................... 41
14.2 – Automatización en Jupyter Notebooks............................................................. 41
14.3 – Frameworks de orquestación .......................................................................... 41
Consideraciones .................................................................................................. 41
15. Proyecto práctico: Scraping de datos deportivos ..................................................... 41
15.1. Planificación.................................................................................................... 41
15.2. Implementación paso a paso ........................................................................... 42
15.3. Análisis de los datos obtenidos ........................................................................ 42
16 Hoja de Ruta Completa: Cómo inspeccionar y scrapear cualquier sitio web .............. 42
FASE 1 – PLANIFICACIÓN ......................................................................................... 42
FASE 2 – INSPECCIÓN CON DEVTOOLS .................................................................... 43
Paso 1: Analiza la estructura HTML ........................................................................ 43
P á g i n a 6 | 49
Paso 2: Revisa si hay una API (pestaña Network) .................................................... 43
Paso 3: Verifica Cookies y Token (pestaña Application) ........................................... 44
FASE 3 – DESARROLLO DEL SCRAPER ....................................................................... 44
Paso 4: Decide la herramienta ............................................................................... 44
Paso 5: Crea un script de prueba ........................................................................... 44
Paso 6: Escala el scraping ..................................................................................... 44
Paso 7: Almacena los datos .................................................................................. 45
FASE 4 – AUTOMATIZACIÓN Y ESCALABILIDAD .......................................................... 45
Paso 8: Agrega logging........................................................................................... 45
Paso 9: Automatiza ............................................................................................... 45
FASE 5 – VALIDACIÓN Y CIERRE ................................................................................ 45
Paso 10: Validación de datos ................................................................................. 45
Paso 11: Backup y revisión final ............................................................................. 45
Anexo: Chrome DevTools para Web Scraping Profesional............................................... 45
Cómo abrir............................................................................................................... 45
1. Network (Red) – API, datos dinámicos y headers .................................................... 46
¿Qué puedes encontrar? ....................................................................................... 46
¿Para qué sirve?.................................................................................................... 46
Cómo usarlo paso a paso: ..................................................................................... 46
2. Elements – Estructura HTML ................................................................................. 46
¿Qué puedes encontrar? ....................................................................................... 46
¿Para qué sirve?.................................................................................................... 47
Cómo usarlo paso a paso ...................................................................................... 47
Ejemplo con Selenium .......................................................................................... 47
Ejemplo con BeautifulSoup ................................................................................... 47
3. Application – Cookies, sesión y almacenamiento local .......................................... 47
¿Qué puedes encontrar? ....................................................................................... 47
¿Para qué sirve?.................................................................................................... 47
Cómo usarlo paso a paso ...................................................................................... 47
Ejemplo de uso con requests ................................................................................ 48
4. Console – Probar selectores y ver variables JS........................................................ 48
¿Qué puedes encontrar? ....................................................................................... 48
¿Para qué sirve?.................................................................................................... 48
Cómo usarlo paso a paso ...................................................................................... 48
Relación con scraping ........................................................................................... 48
5. Sources, Security, Performance – Casos especiales............................................... 48
P á g i n a 7 | 49
¿Qué puedes encontrar? ....................................................................................... 48
¿Para qué sirve?.................................................................................................... 49
Cómo usarlo......................................................................................................... 49
Resumen: ¿Qué buscar en cada apartado? ............................................................... 49
Técnicas Avanzadas en DevTools .............................................................................. 49
P á g i n a 8 | 49
Introducción al Web Scraping
1.1- Qué es el Web Scraping
¿Qué es?
El web scraping es un proceso para extraer información automáticamente desde páginas
web, usando código.
¿Cómo funciona?
1. El programa accede a la web (como un navegador).
2. Descarga el contenido HTML.
3. Busca y extrae los datos deseados (texto, tablas, imágenes…).
4. Guarda los datos en un archivo o base de datos.
Ventajas
• Ahorra tiempo y trabajo manual.
• Permite recolectar datos masivos (escala).
• Muy útil cuando los datos cambian constantemente (ej: estadísticas deportivas en
tiempo real).
Ejemplo práctico
P á g i n a 9 | 49
Web Scraping vs API
Web Scraping API
En el deporte
Se usa para:
• Recoger resultados, clasificaciones, estadísticas.
• Obtener datos históricos o en tiempo real.
• Alimentar dashboards, modelos predictivos o informes.
Riesgos y cuidados
• Las webs pueden bloquearte si haces muchas peticiones.
• Algunas tienen restricciones legales (robots.txt, Términos de Servicio).
• La estructura de las páginas puede cambiar (tu scraper puede fallar).
En resumen
El web scraping es una técnica clave para acceder a información que está en la web pero
no se puede descargar fácilmente. Con Python y algunas librerías, puedes automatizar la
recolección de datos deportivos de forma rápida y eficaz.
P á g i n a 10 | 49
Caso práctico
Objetivo: Analizar cómo evolucionó el rendimiento de los atletas olímpicos en los últimos
20 años.
Solución con scraping:
• El script navega por los sitios oficiales de cada edición olímpica.
• Extrae resultados por disciplina, país y atleta.
• Guarda todo en un Excel.
• El analista puede ahora filtrar, comparar y visualizar tendencias históricas.
Conclusión
El scraping automatiza la recolección de información pública deportiva, haciendo posible
el análisis avanzado sin necesidad de costosas bases de datos privadas.
Analogía
Imagina una revista digital:
• Las tablas con puntuaciones están impresas: tú las ves.
• Pero si quieres automatizar la lectura, necesitas entender cómo están “escritas”
internamente.
• El HTML te dice: “en esta línea está el nombre del jugador”, “en esta otra el tiempo”.
P á g i n a 11 | 49
Ejemplo HTML simplificado:
En resumen:
Etiqueta ¿Qué representa? ¿Para qué sirve en scraping?
<td> Celda de dato individual Para extraer los valores (nombre, puntos, etc.)
P á g i n a 12 | 49
1.4- Arquitectura Cliente-Servidor: El Baile Digital
Para entender cómo funciona el scraping, es clave saber cómo se comunican los
navegadores con los sitios web. Esto se basa en el modelo cliente-servidor.
¿Qué es?
• Cliente: el navegador o programa que hace una petición (tú, o tu scraper).
• Servidor: el sistema que "sirve" la página solicitada (como un camarero digital).
Cuando escribes una URL en el navegador, el cliente (tu navegador) envía una petición HTP
al servidor. El servidor responde con el contenido de la página (HTML, imágenes, etc.).
Ejemplo:
Resumen
Entender el modelo cliente-servidor te ayuda a escribir scrapers respetuosos y efectivos,
evitando bloqueos y errores por mal uso.
¿Qué es HTML?
HTML (HyperText Markup Language) es el lenguaje que organiza los contenidos de una
página web. Está compuesto por etiquetas como <h1>, <table>, <p>, etc.
P á g i n a 13 | 49
¿Qué es CSS?
CSS (Cascading Style Sheets) se encarga del aspecto visual: colores, tamaños, márgenes,
tipografía. Para scraping, el CSS no es esencial, pero a veces puede ayudarte a encontrar
elementos a través de sus clases.
Resumen
Para hacer scraping, debes entender el HTML como un mapa:
Cuanto mejor lo leas, más rápido y preciso serás extrayendo los datos que necesitas.
P á g i n a 14 | 49
1.6- URL y su estructura: El mapa del tesoro
Cada vez que haces scraping, necesitas saber a qué página ir. Eso significa construir
correctamente la URL.
Ejemplo:
Partes de una URL
• https:// → Protocolo de acceso seguro.
• www.ejemplo.com → Dominio del sitio.
• /deportes/futbol/resultados → Ruta interna en el sitio.
• ?temporada=2024&liga=primera → Parámetros (filtran o modifican la información).
Resultado:
Resumen
Entender bien las URLs te permite:
• Navegar por sitios de forma automática.
• Controlar filtros como fechas, categorías, jugadores, etc.
• Acceder directamente a datos específicos sin hacer clics manualmente.
P á g i n a 15 | 49
1.7- Tipos de Web Scraping: Elige la estrategia correcta
Existen varias formas de hacer scraping, y elegir la correcta depende de cómo esté
construida la página web.
Resumen
Seleccionar el tipo correcto de scraping ahorra tiempo, recursos y errores.
Empieza siempre por ver cómo carga la página: si los datos no están en el HTML,
necesitarás Selenium.
P á g i n a 16 | 49
1. Planificación
• Define qué datos necesitas (ej. nombres de jugadores, estadísticas, fechas).
• Averigua si hay una API oficial (si existe, úsala en vez de hacer scraping tradicional).
2. Inspección de la página
• Abre la página en el navegador.
• Examina el HTML para localizar dónde están los datos (en qué etiquetas, clases,
tablas...).
3. Escribir el scraper
• Usa requests o selenium según el tipo de web.
4. Limpieza de datos
• Quita espacios, saltos de línea, etiquetas HTML residuales.
5. Almacenamiento
• Guarda los datos en formato .csv, .json, o directamente en una base de datos.
6. Automatización
• Usa bucles para recorrer páginas.
• Programa tu scraper para que corra cada cierto tiempo (con cron o schedule).
P á g i n a 17 | 49
Ejemplo simple del flujo:
Resumen
Seguir estos pasos garantiza que tu scraping sea:
• Organizado
• Reutilizable
• Escalable
¿Qué es XPath?
• Es un sistema para navegar estructuras XML o HTML.
• Funciona como una ruta: “ve al tercer párrafo dentro de la segunda tabla”.
Ejemplo HTML:
P á g i n a 18 | 49
XPath para obtener los puntos de LeBron:
Traducción: “Busca una tabla con id='resultados', ve a la segunda fila (tr[2]), y toma la
segunda celda (td[2])”.
Resumen
• XPath te da precisión milimétrica para encontrar datos difíciles.
• Es ideal cuando:
o Hay muchas etiquetas similares.
o Los datos están muy anidados.
• Puedes usarlo en conjunto con otras herramientas para obtener lo que necesites
sin margen de error.
P á g i n a 19 | 49
1.10- Tipos de páginas web: Eligiendo la estrategia correcta
Antes de raspar una web, debes entender cómo se construye y se comporta.
Existen varios tipos de páginas, y cada una requiere un enfoque distinto de scraping.
1. Páginas Estáticas
• Definición: Todo el contenido está disponible desde el inicio en el HTML.
• Ejemplo: Una tabla de resultados fija que ves al cargar la página.
• Scraping recomendado: requests + BeautifulSoup o pandas.read_html()
• Ventajas: Fáciles, rápidas y estables.
2. Páginas Dinámicas
• Definición: Los datos no están en el HTML inicial, se cargan después con JavaScript.
• Ejemplo: Un ranking que aparece luego de hacer scroll o clic.
• Scraping recomendado: selenium
• Ventajas: Puedes raspar cualquier contenido visible.
• Desventajas: Más lentas, consumo de recursos.
4. Infinite Scroll
• Definición: Sitios que cargan más contenido cuando haces scroll hacia abajo.
• Ejemplo: Calendarios deportivos o redes sociales.
• Scraping recomendado:
o selenium para simular el scroll.
o A veces APIs ocultas que cargan contenido por AJAX.
• Desafíos: Simular el comportamiento humano (esperas, clics, etc.).
5. Sitios Protegidos
• Definición: Piden login, CAPTCHA, o bloquean bots.
• Ejemplo: Estadísticas premium solo accesibles con suscripción.
• Scraping recomendado: Técnicas avanzadas con selenium, session cookies, login
automatizado.
• Precaución: Estos sitios suelen prohibir scraping en sus términos.
P á g i n a 20 | 49
Resumen
Tipo de página Herramienta sugerida Dificultad Comentario
Protegida/Login selenium + manejo de sesión Muy alta Riesgo legal o técnico alto
¿Es legal?
Depende. El scraping no está prohibido por defecto, pero debes tener en cuenta:
• Términos de uso: Algunos sitios prohíben expresamente extraer datos.
• Derechos de autor: Aunque los datos estén públicos, su uso puede estar
restringido.
• Propiedad de datos: Las webs pueden ser dueñas del contenido, no tú.
¿Qué es robots.txt?
Archivo que indica a los bots qué partes del sitio están permitidas o bloqueadas.
Ejemplo:
Buenas prácticas
• Identifícate como bot si puedes (User-Agent personalizado).
• No hagas miles de peticiones por minuto. Usa time.sleep().
• Evita raspar datos personales (nombre + email + dirección...).
• No publiques ni vendas los datos sin permiso.
• Si hay una API, úsala primero.
Casos problemáticos
• Webs con contenido protegido por login.
• Sitios con información sensible (salud, cuentas, niños).
P á g i n a 21 | 49
• Scraping masivo sin pausas → puedes ser baneado o recibir advertencias legales.
En resumen
El scraping es una herramienta poderosa para el análisis y la automatización, pero debe
usarse con criterio. Siempre respeta los límites técnicos, legales y éticos del sitio que
visitas.
1. Requests
• ¿Qué hace? Permite hacer peticiones HTTP (abrir una página web y traer su
contenido HTML).
• ¿Cuándo usarla? En sitios estáticos, donde el contenido está presente desde el
inicio.
• Ventajas: Simple, ligera, compatible con otras librerías.
• Uso típico:
2. BeautifulSoup
• ¿Qué hace? Analiza el HTML y permite extraer elementos fácilmente.
• ¿Cuándo usarla? Para navegar estructuras HTML y extraer datos.
• Ventajas: Sintaxis sencilla, buena documentación.
• Uso típico:
3. lxml
• ¿Qué hace? Analizador rápido de HTML/XML, permite usar XPath.
• ¿Cuándo usarla? Cuando necesitas rapidez o precisión quirúrgica con XPath.
• Ventajas: Muy rápida, ideal para estructuras complejas.
• Uso típico:
P á g i n a 22 | 49
4. Selenium
• ¿Qué hace? Controla un navegador real (Chrome, Firefox) de forma automática.
• ¿Cuándo usarla? En páginas dinámicas o que requieren interacción (clics, scroll,
login).
• Ventajas: Capta todo lo que vería un humano.
• Desventajas: Más lenta, más consumo de recursos.
• Uso típico:
5. Pandas (read_html)
• ¿Qué hace? Extrae directamente tablas HTML y las convierte en DataFrames.
• ¿Cuándo usarla? Cuando las tablas están bien formateadas en la página.
• Ventajas: Súper rápido para páginas simples.
• Limitación: Solo sirve con tablas limpias y visibles.
P á g i n a 23 | 49
Tabla de comparación
Herramienta ¿Para qué sirve? Nivel de Ventajas Cuándo evitarla
página ideal
En resumen
• Si el sitio es estático y simple → usa requests + BeautifulSoup.
• Si necesitas precisión y velocidad con HTML complejo → usa lxml + XPath.
• Si el sitio es dinámico o interactivo → usa selenium.
• Si hay tablas limpias → usa pandas.read_html() y ya tienes tus datos.
Uso básico
Ventajas
• Extremadamente rápida.
• Convierte automáticamente a DataFrame.
• Ideal para scraping de resultados deportivos estructurados.
P á g i n a 24 | 49
Desventajas
• Solo funciona con tablas visibles y bien estructuradas.
• No detecta datos si la tabla está construida con JavaScript.
Consejos avanzados
• Puedes añadir parámetros como match="Clasificación" para buscar una tabla
específica.
• Conviene inspeccionar el HTML para saber cuántas tablas hay antes de usarlas.
Cuándo no usarlo
• Si la tabla no está renderizada directamente en el HTML (por JavaScript).
• Si hay que hacer scroll, clics o login.
Uso básico
Ventajas
• Ligero, rápido y fácil de combinar con BeautifulSoup, lxml o pandas.
Consejos avanzados
• Puedes modificar los headers para simular un navegador:
Cuándo evitarlo
• Cuando el contenido se genera con JavaScript → en ese caso usa selenium.
Un parser que trabaja con estructuras XML y HTML, ideal para usar XPath y hacer
scraping de forma precisa.
P á g i n a 25 | 49
Uso básico
Ventajas
• Extremadamente rápido.
• Muy preciso usando XPath (ideal para páginas complejas o confusas).
Limitaciones
• Sintaxis de XPath menos intuitiva si estás empezando.
• No detecta contenido cargado dinámicamente (JS).
Cuándo evitarlo
• Si prefieres una sintaxis más “Pythonica”, empieza con BeautifulSoup.
Uso básico
Ventajas
• Fácil de aprender.
• Muy legible.
• Compatible con HTML mal formateado.
Consejos avanzados
• Puedes usar selectores CSS:
P á g i n a 26 | 49
Cuándo evitarlo
• Si necesitas búsquedas extremadamente precisas con estructuras complejas, es
mejor lxml.
P á g i n a 27 | 49
Recomendaciones
• Usa contains() para búsquedas flexibles.
• Combina criterios con and, or si es necesario.
• Usa Chrome: clic derecho > Inspeccionar > Copiar XPath → punto de partida útil.
En resumen
XPath avanzado permite encontrar exactamente el dato que necesitas, incluso en webs
muy complejas. Cuanto mejor domines XPath, más eficiente será tu scraper.
P á g i n a 28 | 49
4.2 – Manejo de múltiples páginas
Cuando tienes varias páginas de resultados, debes:
1. Detectar el patrón de la URL o botón.
2. Iterar sobre las páginas (con for o while).
3. Combinar los datos extraídos en una sola estructura (lista, DataFrame).
Consejos prácticos
• Asegúrate de no repetir o saltarte páginas.
• Usa sleep() para no sobrecargar el servidor.
• Si usas selenium, recuerda esperar que cargue la nueva página antes de continuar.
En resumen
La paginación es uno de los retos más frecuentes del scraping real. Saber cómo recorrer
múltiples páginas te permitirá extraer grandes volúmenes de datos organizados por partes.
¿Cómo detectarlo?
• Abre el sitio → clic derecho → "Ver código fuente": si no ves los datos ahí, pero sí en
pantalla, la página es dinámica.
• Usa "Inspeccionar elemento" → Red (Network) para ver las cargas.
P á g i n a 29 | 49
Uso básico
Abre el sitio como un humano. Ya puedes usar BeautifulSoup o XPath para analizar el HTML.
Simular clic:
Simular scroll:
Esperar:
P á g i n a 30 | 49
Headless (sin abrir ventana):
P á g i n a 31 | 49
5.12 – Recomendaciones prácticas
• Siempre prueba con headless + sleep() para evitar detección.
• Usa WebDriverWait para esperar que se cargue contenido en lugar de time.sleep()
fijo.
• Combina Selenium con BeautifulSoup o lxml para analizar el contenido una vez
cargado.
En resumen
Selenium te permite hacer scraping de cualquier contenido visible, incluso si necesitas
interactuar con la web como un usuario real. Eso sí, es más lento y complejo, por lo que
úsalo solo cuando requests y pandas no funcionen.
P á g i n a 32 | 49
Muchos sitios bloquean bots que no envían cabeceras realistas.
6.6 – Time.sleep()
Pausar tu scraper entre peticiones:
P á g i n a 33 | 49
Consideraciones éticas
• No intentes evitar bloqueos en sitios que explícitamente lo prohíben.
• Usa estas técnicas en webs donde el scraping sea legítimo y responsable.
Puedes buscar ese bloque de texto y extraer los datos con regex o json.loads().
P á g i n a 34 | 49
En resumen
Siempre que puedas, usa una API: es más limpio, rápido y confiable.
Si no existe o es limitada, puedes combinar scraping clásico, Selenium y extracción desde
iframes o scripts.
En requests, puedes usar una sesión para guardar y reutilizar cookies automáticamente:
P á g i n a 35 | 49
c) Autenticación OAuth
• Usada por redes sociales y APIs (más compleja).
• Se gestiona con tokens de acceso temporales.
• Requiere un flujo de autorización.
Evita intentar romper captchas de sitios donde esté prohibido por términos legales.
P á g i n a 36 | 49
• Devuelve códigos como 403 o páginas de verificación.
P á g i n a 37 | 49
11 – Web Scraping Responsable y Ético
11.1 – ¿Por qué es importante?
• El scraping puede impactar negativamente en servidores si se abusa.
• Puede violar políticas de uso o incluso leyes si incluye datos sensibles.
P á g i n a 38 | 49
2. Multiprocessing (múltiples procesos independientes)
Consideraciones
• No uses paralelización sin pausas: podrías bloquear el sitio objetivo.
• Aumenta velocidad, pero también complejidad.
• Haz pruebas pequeñas antes de lanzar en producción.
P á g i n a 39 | 49
13.1 – Logging (registro de eventos)
13.2 – Alertas
Puedes configurar alertas por:
• Email (smtplib)
• Slack API
• Telegram bots
• Webhooks
Ejemplo simple (en consola):
Consideraciones
• Automatizar implica también controlar errores (fallos de conexión, formato, etc.).
• Siempre combina automatización con logging y alertas para evitar sorpresas.
FASE 1 – PLANIFICACIÓN
Antes de abrir el navegador:
1. Define tu objetivo
o ¿Qué datos necesitas exactamente?
o ¿Dónde están (partidos, rankings, resultados, fichajes…)?
2. Estudia el sitio web manualmente
o ¿Tiene paginación? ¿Scroll infinito?
o ¿Requiere login?
o ¿Existe una API? (investiga en Google: "API site:sitio.com")
P á g i n a 42 | 49
FASE 2 – INSPECCIÓN CON DEVTOOLS
Abre la web en Google Chrome y presiona F12 o clic derecho → "Inspeccionar".
P á g i n a 43 | 49
Paso 3: Verifica Cookies y Token (pestaña Application)
• Ve a "Application" → Cookies
• Verifica si se guarda una cookie de sesión
• Copia la cookie y úsala con requests.Session():
Paso 9: Automatiza
Con schedule (dentro del script)
P á g i n a 45 | 49
1. Network (Red) – API, datos dinámicos y headers
¿Qué puedes encontrar?
• Peticiones que hace la página para cargar datos (AJAX, JSON, API).
• URL completa de la fuente de datos.
• Método HTTP (GET o POST).
• Cabeceras como cookies, tokens de autenticación, User-Agent.
• El contenido que se devuelve: JSON, HTML parcial, etc.
P á g i n a 46 | 49
¿Para qué sirve?
Para identificar en qué etiquetas están los datos y con qué selectores acceder a ellos
mediante scraping con BeautifulSoup, lxml o selenium.
Para mantener sesiones después del login o acceder a recursos protegidos por token sin
tener que automatizar el login cada vez.
P á g i n a 47 | 49
Ejemplo de uso con requests:
Para probar si los datos pueden accederse desde el frontend JavaScript, o si hay
estructuras internas que puedes replicar en tu scraper.
Si obtienes el dato con JS, puedes usar el mismo selector con Selenium:
P á g i n a 48 | 49
¿Para qué sirve?
Para entender cómo la web genera datos en páginas complejas. A veces, las URLs que
necesitas están “ocultas” en funciones JavaScript.
Cómo usarlo:
• Ve a la pestaña "Sources".
• Abre los archivos .js.
• Usa Ctrl+F para buscar palabras clave como fetch, token, resultados, etc.
• Examina cómo se construyen las URLs o los tokens que luego puedes replicar en tu
scraper.
Preservar log en Network Marca "Preserve log" antes de navegar a otras páginas
P á g i n a 49 | 49