Internet es, en esencia, una gigantesca base de datos, solo que ordenada de una forma muy incómoda. Los precios se mezclan con imágenes y botones, las estadísticas se esconden en tablas y los anuncios se reparten entre cientos de páginas. «Recopilar datos de un sitio web» significa convertir esa papilla visual en una tabla o un archivo limpio con el que se pueda trabajar: calcular, comparar, hacer gráficos.
Este artículo es un mapa del terreno. Explica qué tipos de datos existen, con qué métodos se extraen (del copiado manual a los programas robot), por dónde pasan las fronteras legales y éticas, y repasa escenarios concretos para distintos tipos de datos. Los datos personales quedan fuera; del porqué hablaremos por separado.
Parte 1. Primero, un poco de teoría — pero sin aburrir
Cómo funciona un sitio web por dentro
Al abrir una página, el navegador recibe un archivo de texto en lenguaje HTML: un marcado, un conjunto de «cajitas» anidadas con etiquetas. El titular está en la cajita marcada como «titular», el precio en la cajita «precio», y así sucesivamente. Lo que ve es una página bonita, pero debajo hay texto estructurado.
La recopilación de datos (en inglés, web scraping, literalmente «raspado»; a veces verá el calco «raspado web») es justamente ese proceso: un programa lee ese texto, localiza las cajitas necesarias y extrae su contenido. La gran revelación para quien empieza: lo que se ve en pantalla casi siempre está disponible como texto; solo hay que llegar hasta él.
Dos mundos: HTML y API
Hay dos maneras radicalmente distintas en que un sitio puede entregar sus datos.
A través de la página HTML. Los datos van «incrustados» en la misma página que ve una persona. Para extraerlos hay que analizar (parsear) el HTML, buscando aquellas cajitas. Funciona casi siempre, pero es la vía más frágil: si el diseñador cambia la maquetación, su recolector se rompe.
A través de una API. Muchos sitios tienen una «entrada de servicio»: una interfaz de programación (Application Programming Interface) pensada específicamente para las máquinas. Se envía una petición del tipo «dame el tiempo en Madrid» y se reciben datos limpios en un formato ordenado (normalmente JSON, un texto de pares «clave: valor»). Es el método más fiable y más cortés cuando está disponible. Meteorología, tipos de cambio, mapas, finanzas, estadísticas: todo eso, por regla general, tiene API.
Regla de oro: busque primero la API y, solo si no existe, parsee el HTML.
Datos estructurados y no estructurados
- Estructurados: ya vienen ordenados por estanterías: tablas, listas de precios, catálogos. Son los más fáciles de recopilar.
- No estructurados: texto corrido: artículos, reseñas, publicaciones. Recopilar el texto en sí no es difícil, pero para extraer de él el significado (la tonalidad de una reseña, las empresas mencionadas) hace falta un procesamiento adicional, a menudo con ayuda de la IA.
Parte 2. El marco legal y ético
No es un trámite que se pueda pasar de largo. Desconocer los límites es la forma más habitual de buscarse problemas.
El archivo robots.txt. Casi todo sitio tiene en la dirección sitio.com/robots.txt un archivo de texto donde el propietario indica qué secciones pide a los robots que no toquen. No es una ley, sino más bien unas «normas de cortesía», pero ignorarlas es de mala educación y, a veces, motivo de bloqueo.
Las condiciones de uso (Terms of Service). Muchos sitios prohíben expresamente la recopilación automatizada en su acuerdo de usuario. Incumplirlo ya es una cuestión de relaciones contractuales, y las grandes plataformas (marketplaces, redes sociales) llegan a los tribunales por ello.
La carga sobre el servidor. Si su robot envía miles de peticiones por segundo, en la práctica le está montando al sitio un mini-DDoS. Recopilar con cortesía significa hacer pausas entre peticiones y trabajar en horas de baja carga.
Los derechos de autor. Los hechos en sí (el precio de un producto, la temperatura del aire) no están protegidos por derechos de autor. Los textos de los artículos, las fotografías y las reseñas, en cambio, sí lo están. Recopilar para analizar es una cosa; republicar en su propio sitio, otra muy distinta.
Los datos personales: la zona aparte y más peligrosa. Nombres, teléfonos, direcciones, caras en las fotos, correspondencia: todo eso lo regulan las leyes de protección de datos (el RGPD en Europa y normas análogas en otros países). Recopilar datos personales sin una base legal puede acabar en multas cuantiosas y responsabilidad penal. Por eso en este artículo hablamos deliberadamente solo de datos anonimizados, por lo general públicos y factuales: precios, meteorología, estadísticas, surtido, titulares de noticias y similares.
Un criterio de sentido común: ¿estoy recopilando hechos de acceso público para analizarlos, sin sobrecargar el servidor y sin apropiarme de contenido ajeno? Si la respuesta es sí, lo más probable es que esté en zona segura. Si se trata de datos personales o de revender contenido ajeno, deténgase y consulte con un especialista.
Parte 3. Las herramientas: de la más simple a la más potente
Los métodos para recopilar datos forman todo un espectro. La elección depende de cuántos datos necesita, con qué frecuencia y de si está dispuesto a programar.
Nivel 0. Copiado manual
Suena primitivo, pero si necesita 20 filas una sola vez, seleccione la tabla con el cursor y péguela en Excel. No mate moscas a cañonazos. La automatización compensa cuando los datos son muchos o hay que recopilarlos con regularidad.
Nivel 1. Funciones dentro de la hoja de cálculo
Google Sheets sabe traer datos de sitios web con funciones integradas, sin una sola línea de código:
=IMPORTHTML("url"; "table"; 1)— extrae la primera tabla de la página (funciona de maravilla, por ejemplo, con las tablas de Wikipedia).=IMPORTXML("url"; "consulta")— obtiene elementos concretos por su ruta dentro de la página.=IMPORTDATA("url")— carga un archivo de datos ya preparado (CSV).
Es el arranque ideal para quien no programa: todo ocurre en una hoja de cálculo familiar y los datos pueden actualizarse solos.
Nivel 2. Extensiones del navegador
Plugins gratuitos que convierten la recopilación en un «señale qué recoger»:
- Web Scraper (extensión para Chrome) — haga clic en los elementos directamente en la página, explíquele al robot «esto es el nombre, esto es el precio», y él recorrerá todas las páginas por su cuenta.
- Instant Data Scraper — encuentra automáticamente las tablas y listas de la página y propone descargarlas con un solo botón. Rapidísimo para los casos simples.
Encajan cuando el sitio es sencillo y la recopilación no es regular.
Nivel 3. Plataformas no-code (sin código, pero con más músculo)
Servicios completos con interfaz visual, pensados para volúmenes serios:
- Octoparse, ParseHub — configure la recopilación con unos clics y la plataforma se encarga sola de los sitios complejos, de la paginación y de la ejecución programada.
- Apify — un marketplace de recolectores ya preparados para los sitios populares: a menudo lo que necesita ya está escrito y solo queda lanzarlo.
- Bright Data, Octoparse Cloud — soluciones en la nube de escala industrial, incluida la evasión de bloqueos (hablamos de ello más abajo). Esto ya es terreno de pago, orientado a empresas.
A favor: no hay que programar. En contra: la comodidad y la escala se pagan con dinero, y la flexibilidad sigue siendo menor que la del código propio.
Nivel 4. Programación (flexibilidad máxima)
Cuando hace falta control total, se escribe código. El lenguaje más popular para ello es Python, en buena parte gracias a sus cómodas bibliotecas de recopilación de datos. Las herramientas principales:
- requests — el «descargador» de páginas: le pide al sitio el HTML y lo recibe.
- BeautifulSoup — el «desmontador»: encuentra en el HTML recibido las cajitas necesarias. El dúo
requests+BeautifulSoupes el kit clásico del principiante. - Scrapy — todo un framework para proyectos serios: sigue los enlaces por sí mismo, recorre miles de páginas y guarda el resultado en archivos. Para tareas grandes.
- Selenium y Playwright — manejan un navegador de verdad como un robot humano: pulsan botones, hacen scroll, rellenan campos. Necesarios para los sitios «caprichosos» (vea más abajo lo de JavaScript).
- pandas — no sirve para recopilar, sino para procesar: convierte lo recopilado en una tabla, lo limpia y hace los cálculos.
No es obligatorio escribir el código a mano: los asistentes de IA actuales generan estos scripts a partir de una descripción textual de la tarea. El umbral de entrada ha bajado en picado en los últimos años.
El nivel «sin recopilar nada»: datos ya preparados
Antes de scrapear nada, compruebe si alguien ya lo ha recopilado todo:
- Conjuntos de datos abiertos — Kaggle, los portales de datos abiertos de las administraciones públicas (datos.gob.es, data.europa.eu), los institutos de estadística.
- Feeds RSS — muchos medios y blogs siguen ofreciendo sus contenidos recientes como un feed legible por máquinas. Simple y legal.
- APIs oficiales — lo repetimos una vez más: si existe, es la mejor opción.
Parte 4. Las principales dificultades y cómo se sortean
Sitios construidos con JavaScript
Muchos sitios modernos entregan primero una página casi vacía y luego «pintan» el contenido con scripts ya en el navegador. Un simple requests verá el vacío. La solución son las herramientas que arrancan un navegador real (Selenium, Playwright) y esperan a que todo cargue. Es más lento, pero ve todo lo que ve una persona.
Paginación y listados
Los datos rara vez caben en una sola página: lo habitual es un «1, 2, 3 ... 500» al pie o un scroll infinito. Hay que enseñar al recolector a pasar de página o a desplazarse hacia abajo hasta agotar los registros.
Protección contra robots
A los sitios no les gusta que los scrapeen de forma intensiva, y levantan barreras: CAPTCHA («demuestre que es humano»), bloqueo por dirección IP ante peticiones frecuentes, obligación de iniciar sesión. Se sortean con pausas entre peticiones, rotación de direcciones (servidores proxy) y camuflaje de navegador corriente. Aquí conviene recordar: cuanto más agresiva es la evasión de la protección, más cerca está de infringir las condiciones del sitio. Es una zona gris en la que resulta fácil cruzar la raya.
Limpieza de datos
Lo recopilado casi nunca llega perfecto: espacios de más, la divisa mezclada con las cifras («1.990 €» en lugar de 1990), duplicados, huecos. El procesamiento y la limpieza suelen ser una parte del trabajo no menor que la propia recopilación.
Parte 5. Escenarios para distintos tipos de datos
Ahora, lo más práctico. Veamos cómo abordar tipos de datos concretos.
Precios y productos (monitorización de precios, surtido)
Para qué: vigilar los precios de la competencia, cazar descuentos, analizar el mercado, comparar ofertas.
Particularidades: los marketplaces son los sitios mejor protegidos de internet y, por lo general, prohíben expresamente el scraping en sus normas. Los datos se cargan con scripts, los precios cambian y hay sistemas anti-bots serios de por medio.
Cómo abordarlo: para una tarea puntual, extensiones del navegador. Para una monitorización regular, plataformas no-code (en Apify suele haber recolectores listos para las grandes tiendas) o código propio con automatización de navegador. Muchas grandes plataformas ofrecen APIs de afiliación o de producto: esa es la vía legal. Extreme el cuidado con las normas de cada plataforma: por el scraping bloquean cuentas y presentan demandas.
Noticias y artículos (textos, titulares)
Para qué: monitorización de menciones de una marca o de un tema, recopilación de materiales para análisis, seguimiento de la agenda informativa.
Cómo abordarlo: en primer lugar, los feeds RSS: es legal y sencillo. Si no hay feed, ayudan las APIs de noticias ya preparadas (NewsAPI, GDELT y similares). Para sitios sueltos, el dúo requests + BeautifulSoup. Recuerde los derechos de autor: recopilar para analizar, sí; republicar textos ajenos, no.
Tablas y estadísticas (Wikipedia, datos públicos, anuarios)
Para qué: población de las ciudades, estadística deportiva, series históricas, datos científicos.
Cómo abordarlo: es el género más fácil. Una tabla de Wikipedia se extrae en un minuto con una sola función IMPORTHTML en Google Sheets. En Python, la biblioteca pandas sabe leer todas las tablas de una página con un solo comando (read_html). Y revise además los portales de datos abiertos: allí mucho ya está publicado como archivo listo.
Anuncios clasificados (inmuebles, automóviles, ofertas de empleo)
Para qué: análisis del mercado del alquiler, salarios medios por profesión, evolución de los precios de los automóviles.
Particularidades: hay miles de anuncios de este tipo, repartidos en multitud de páginas, y los portales suelen protegerse. Importante: los anuncios contienen a menudo datos personales (los contactos del vendedor); no hay que recopilarlos y, con frecuencia, es ilegal. Tome solo lo anonimizado: precio, superficie, zona, características.
Cómo abordarlo: plataformas no-code con paginación, o Scrapy para grandes volúmenes. Muchos portales tienen API para socios.
Reseñas y valoraciones
Para qué: entender qué elogian y qué critican de un producto, comparar reputaciones, encontrar los puntos de dolor.
Particularidades: recopilar el texto de la reseña es lo de menos; el valor está en el análisis. El enfoque moderno: recopilar las reseñas y pasarlas después por un modelo de IA que determine la tonalidad (positiva/negativa) y extraiga los temas. Los nombres de los autores no se recopilan: solo el texto, la puntuación y la fecha.
Finanzas (cotizaciones, tipos de cambio, cripto)
Para qué: análisis de mercado, seguimiento de la cartera, datos históricos para backtesting.
Cómo abordarlo: aquí casi siempre hay API, y a menudo gratuitas o semigratuitas: Yahoo Finance, Alpha Vantage, las APIs de las bolsas, las de los bancos centrales para los tipos de cambio (el BCE publica los tipos de referencia del euro). Parsear HTML aquí casi nunca hace falta: son datos financieros y se entregan a las máquinas limpios a propósito.
Meteorología y datos científicos o ambientales
Para qué: pronósticos, observaciones históricas, análisis climático, cruce con otros datos.
Cómo abordarlo: exclusivamente vía API (OpenWeatherMap, Open-Meteo, los servicios de las agencias meteorológicas). Scrapear webs del tiempo no tiene sentido: la API es más cómoda y fiable. Muchas son gratuitas para un uso moderado.
Imágenes y contenidos multimedia
Para qué: datasets para entrenar IA, colecciones para análisis, archivado.
Particularidades: técnicamente, recopilar imágenes es fácil (sus direcciones están en el HTML). Legalmente es la zona más resbaladiza: las fotografías están protegidas por derechos de autor y, si aparecen personas, se suman los datos personales. Lo seguro es trabajar con datasets especiales con licencias abiertas (Unsplash, Wikimedia Commons, colecciones con permiso de uso explícito).
Mapas y datos geográficos
Para qué: puntos en el mapa (cafeterías, gasolineras), rutas, coordenadas, superficies de zonas.
Cómo abordarlo: a través de las APIs de los servicios cartográficos (OpenStreetMap es totalmente abierto y gratuito; existen APIs de pago de las grandes plataformas de mapas). Además, OpenStreetMap es en sí una enorme base de geodatos abierta que puede descargarse por regiones enteras.
Datos deportivos
Para qué: estadísticas de los partidos, resultados, alineaciones, historial de actuaciones.
Cómo abordarlo: existen APIs deportivas especializadas (algunas gratuitas para los datos básicos). Las tablas de resultados también se sacan sin esfuerzo de Wikipedia y de los sitios de referencia con IMPORTHTML o pandas.
Redes sociales (métricas públicas, no personales)
Para qué: análisis de tendencias, popularidad de los hashtags, menciones de un tema.
Particularidades: la categoría más delicada después de los datos personales directos. Las redes sociales están duramente protegidas en lo técnico y en lo legal, sus normas prohíben el scraping casi siempre, y la mayoría de los datos que contienen son personales. La única vía segura son las APIs oficiales de las plataformas, y únicamente indicadores agregados y anonimizados (cuántas publicaciones hay sobre un tema, la tonalidad general), sin recopilar perfiles de personas concretas.
Parte 6. Cómo elegir el enfoque: guía rápida
Recorra las preguntas de arriba abajo y deténgase en el primer «sí»:
- ¿Y si los datos ya están recopilados? → Revise Kaggle, los portales de datos abiertos, el RSS.
- ¿Tiene el sitio una API oficial? → Úsela. Es la mejor opción.
- ¿Necesita poca cosa, una sola vez? → Copie a mano o con una extensión del navegador.
- ¿Es una tabla? →
IMPORTHTMLen Google Sheets opandasen Python. - ¿Recopilación regular, pero sin ganas de programar? → Una plataforma no-code (Octoparse, ParseHub, Apify).
- ¿Necesita control total o la tarea es atípica? → Python:
requests+BeautifulSoup; para los sitios complejos, Playwright/Selenium; para la escala, Scrapy.
Y en cada paso tenga presentes los tres límites: robots.txt y las normas del sitio, la carga sobre el servidor y, terminantemente, nada de datos personales.
Conclusión
La recopilación de datos de sitios web es un espectro, no una tecnología única. En un extremo, seleccionar una tabla con el cursor y pegarla en Excel; en el otro, un framework que recorre miles de páginas según un calendario. Entre medias, las funciones de las hojas de cálculo, las extensiones del navegador, las plataformas no-code y las bibliotecas de programación. La herramienta correcta la determinan el volumen, la regularidad y su disposición a programar (que, gracias a los asistentes de IA, hoy ya no es una barrera tan alta).
Lo esencial que conviene llevarse: busque primero datos ya preparados y APIs, parsee el HTML solo cuando no quede otra, respete las normas y los servidores de los sitios y manténgase lejos de los datos personales. Técnicamente se puede recopilar casi cualquier cosa, pero el buen trabajo con datos no empieza por la pregunta «cómo lo extraigo», sino por «¿tengo derecho y merece la pena?».