Scraping

Buenas prácticas de web scraping: cómo recolectar datos sin dañar los sitios que scrapeas

Web scraping responsable: respeta robots.txt, limita el ritmo, retrocede ante los 429, cachea y scrapea fuera de pico. Ser buen ciudadano también hace que te bloqueen mucho menos.

Chris Collins

Chris Collins

27 de julio de 2026 · 9 min de lectura

La mayoría de las guías de scraping optimizan una sola cosa: obtener los datos sin que te detengan. Es un objetivo razonable, pero se salta la parte que decide si tu pipeline sobrevive más allá del primer mes. Un scraper que martillea un destino tan rápido como puede no solo es maleducado, es frágil. Dispara la carga del sitio, activa todos los límites de ritmo y reglas anti-bot que tiene, y convierte una fuente que querías leer en silencio en una que activamente intenta echarte.

Lo contraintuitivo es que la forma responsable de scrapear y la forma duradera de scrapear son la misma cosa. Comportarte como un cliente considerado, uno que respeta los límites, reparte la carga y pide solo lo que necesita, es exactamente el perfil que se mantiene por debajo de los umbrales de detección y sigue funcionando. Esta es la cara de la etiqueta de la misma moneda que cómo evitar que te bloqueen: ese post trata de no parecer un bot, este trata de no comportarte como uno dañino. Haz lo segundo y lo primero se resuelve casi solo.

Así es como se ve, en la práctica, el scraping responsable y duradero.

Lee robots.txt, y tómatelo en serio

Todo sitio bien gestionado publica un robots.txt en su raíz que declara qué rutas no deberían tocar los clientes automatizados y, a veces, un Crawl-delay. No es un contrato legal ni una barrera técnica, es el sitio diciéndote sus preferencias en el único lugar hecho para ese fin. Ignorarlo por completo es la señal más clara de que no eres un visitante de buena fe.

La postura práctica: descarga robots.txt una vez al inicio de una ejecución, cachéalo y respeta sus rutas prohibidas para el user-agent que presentas. Si especifica un retardo de rastreo, trátalo como un suelo, no como una sugerencia. Hay razones legítimas por las que algunos proyectos divergen de partes de él, pero “nunca lo miré” no es una de ellas. Leerlo también te dice dónde guarda el sitio un sitemap, que a menudo es una forma mucho más limpia de descubrir URLs que rastrear enlace por enlace.

Autolimita tu ritmo antes de que el sitio tenga que hacerlo

Lo más dañino que hace un scraper es enviar peticiones tan rápido como permite la red. Un destino dimensionado para tráfico humano puede ser empujado a tiempos de respuesta degradados, o más allá, por un solo cliente agresivo. Eso perjudica a usuarios reales, y es la forma más rápida de que bloqueen todo tu rango de IP.

Fija un ritmo de peticiones deliberado y mantente por debajo. Unas pocas peticiones por segundo por host es de sobra para la mayoría de los trabajos, y más lento es más seguro en sitios pequeños. Añade un pequeño jitter aleatorio entre peticiones en vez de un intervalo de metrónomo fijo, para que tu tráfico no parezca mecánicamente uniforme. La meta es ser un visitante modesto entre muchos, no un pico en el panel de monitorización de alguien. Si necesitas más throughput total, repártelo a lo largo del tiempo y a través de un pool rotativo en lugar de subir la presión sobre un único host.

Retrocede cuando el sitio te diga que no

Un 429 Too Many Requests o un 503 es el servidor diciéndote explícitamente que reduzcas la velocidad. La respuesta equivocada es reintentar de inmediato, que es justo lo que un servidor sobrecargado no puede manejar. La respuesta correcta es backoff exponencial: espera, reintenta, y si vuelve a fallar espera más, duplicando el retardo cada vez hasta un techo. Respeta una cabecera Retry-After cuando el servidor la envíe, te está diciendo exactamente cuánto esperar.

Esto es distinto de reintentar una petición genuinamente fallida. Una conexión caída o un timeout es un intento roto que vale la pena reintentar pronto; un 429 es un servidor que funciona pidiendo espacio. Trátalos de forma diferente. Reintentar 429 a ciegas en un bucle apretado es como un scraper convierte un límite de ritmo suave en un baneo duro.

Cachea con ganas y no descargues nunca lo mismo dos veces

La petición más barata es la que no envías. Antes de escalar, mira con lupa cuánto estás re-descargando. Cachear respuestas, respetar ETag y Last-Modified con peticiones condicionales, y deduplicar tu frontera de URLs reduce de forma rutinaria el volumen real de peticiones en márgenes grandes. Cada petición evitada es carga que no pusiste sobre el destino, ancho de banda que no gastaste, y un evento de riesgo de bloqueo que nunca ocurrió.

Esto solapa directamente con el coste. La misma disciplina que te hace un invitado más ligero también recorta tu factura de ancho de banda de proxy: pide solo las páginas que necesitas, descarga solo los campos que usas, y salta activos como imágenes y fuentes cuando solo quieres el HTML. Cortesía y eficiencia son el mismo conjunto de hábitos.

Scrapea en horas de menor actividad

Si puedes controlar cuándo corre un trabajo, córrelo cuando el destino esté tranquilo. Un lote que sería perceptible a mediodía es invisible contra el bajo tráfico nocturno en la zona horaria local del sitio. Esta es la diferencia entre añadir carga cuando el servidor menos se lo puede permitir y tomar prestada capacidad que de otro modo estaría ociosa. Para grandes descargas recurrentes, programa contra la ventana de menor actividad del destino, no la tuya.

Identifícate con honestidad donde puedas

Aquí hay una tensión real, y vale la pena ser directo al respecto. La buena etiqueta de scraping tradicionalmente significa enviar un User-Agent descriptivo que nombre tu bot y una forma de contactarte, para que un administrador que note tu tráfico pueda escribirte en lugar de recurrir a un bloqueo. Muchos rastreadores serios y legítimos hacen exactamente esto.

Al mismo tiempo, los sitios bloquean cada vez más cualquier cosa que se autoidentifique como automatizada sin importar el comportamiento, lo que empuja a los scrapers a presentarse como un navegador común. Ambas posturas son defendibles según tu caso de uso. Lo que no es defendible es hacerte pasar por un servicio específico que no eres, o suplantar el rastreador de otra empresa. Elige una presentación honesta para tu situación y mantenla consistente. Si recolectas datos para un negocio, tener una página pública que explique qué hace tu rastreador y cómo contactarte no cuesta nada y desactiva mucho conflicto.

Toma solo datos públicos, y fíjate en lo que contienen

El scraping responsable significa páginas públicas, alcanzadas sin derrotar un muro de autenticación ni aceptar términos que luego ignoras. Los datos detrás de un login son una categoría legal y ética distinta, y si el scraping en sí es legal depende en gran medida de esa línea. Quédate en el lado público de ella.

Sé igual de cuidadoso con lo que contienen los datos que con de dónde vienen. Si las páginas incluyen información personal, heredas obligaciones de privacidad en el momento en que la almacenas, y recolectar datos personales a escala mete en juego el RGPD y regímenes similares. La postura más limpia es dejar los datos personales fuera de tu recolección salvo que tengas una razón lícita específica para retenerlos, y no conservar lo que no necesitas.

Dónde encajan los proxies, y por qué los buenos te hacen más suave

Nada de lo anterior es un argumento contra los proxies, es un argumento a favor de usarlos de la forma correcta. Un pool residencial de calidad es lo que te permite repartir un ritmo de peticiones razonable entre muchas IP y geografías en lugar de concentrar presión sobre un destino desde una sola dirección. Bien usado, es una herramienta de distribución de carga y localización, no una forma de golpear un sitio más fuerte.

La calidad del pool también decide con qué frecuencia reintentas siquiera. Las IP limpias con buena reputación pasan sin problema donde las marcadas reciben desafíos, así que un pool mejor significa menos intentos fallidos, menos reintentos, y menos carga total que generas por los mismos datos. Rotar con sensatez, una identidad por unidad lógica de trabajo en lugar de una IP nueva a mitad de sesión (sticky vs rotativo), mantiene tu huella coherente y ligera. Y mantener la latencia baja significa que cada petición termina y libera rápido en vez de acumularse.

Una lista breve

  • Descarga y respeta robots.txt; usa el sitemap al que apunta.
  • Fija un ritmo deliberado por host con jitter aleatorio; unas pocas peticiones por segundo suele bastar.
  • Retrocede exponencialmente ante 429/503; respeta Retry-After. No lo confundas con reintentar una petición rota.
  • Cachea, usa peticiones condicionales, deduplica. La petición más barata es la que te saltas.
  • Descarga solo las páginas y campos que necesitas; salta los activos que no usarás.
  • Prefiere las horas de menor actividad en la zona horaria del destino para trabajos grandes.
  • Elige una identidad honesta y consistente. Nunca suplantes el rastreador de otra empresa.
  • Solo datos públicos. Deja fuera los datos personales que no tengas una razón lícita para conservar.
  • Usa un pool residencial limpio para distribuir la carga, no para intensificarla.

En resumen

Los scrapers que siguen funcionando durante años no son los más agresivos, son los que el destino apenas nota. Cada práctica de aquí, limitar el ritmo, backoff, cacheo, programar fuera de pico, identificación honesta, apunta en la misma dirección: toma lo que necesitas, deja el sitio sano, y parece el cliente considerado que de verdad eres. Esa es la forma ética de scrapear, y resulta ser la forma que no hace que te bloqueen.

Si quieres infraestructura construida para distribuir carga en lugar de concentrarla, nuestros proxies residenciales corren sobre un pool limpio y rotativo, y la página de precios tiene planes por GB para que un scraping más ligero e inteligente te cueste, de hecho, menos.

¿Listo para empezar?

Prueba los proxies residenciales de Shifter, más de 205M IPs, más de 195 países, desde 0,75 $/GB.

Comenzar