Bypass de protecciones anti-bot
Los sitios grandes (tiendas, redes sociales, buscadores) detectan a los programas que visitan miles de páginas muy rápido y los bloquean. Esto pasa porque un scraper se comporta distinto a una persona: sin pausas, siempre igual, sin cabeceras de navegador.
La mejor estrategia es ser un visitante educado: espacia las peticiones con pausas, identifícate con cabeceras reales (User-Agent), reutiliza la sesión y reintenta con calma cuando falla. Antes de empezar revisa el robots.txt y los términos del sitio: si no permiten extraer datos, no lo hagas o usa su API oficial.
Técnicas para evitar bloqueos:
import requests
import random
import time
# 1. Rotar User-Agents
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36",
]
# 2. Rotar proxies
PROXIES = [
{"http": "http://proxy1:8080"},
{"http": "http://proxy2:8080"},
]
def scrape_safe(url):
headers = {"User-Agent": random.choice(USER_AGENTS)}
proxy = random.choice(PROXIES) if PROXIES else None
# 3. Rate limiting - esperar entre requests
time.sleep(random.uniform(1, 3))
r = requests.get(url, headers=headers, proxies=proxy)
return r
# 4. Usar sesiones para mantener cookies
session = requests.Session()
session.headers.update({"User-Agent": random.choice(USER_AGENTS)})
Tecnicas anti-deteccion:
• Rotar User-Agent en cada request • Rotar IP con proxies (residenciales son mejores) • Rate limiting (1-3 seg entre requests) • Usar sesiones con cookies • Headers realistas (Accept, Accept-Language, Referer) • No seguir patrones predecibles • Respetar robots.txt
Practica esta lección
Resuelve los ejercicios del curso de Web Scraping con Python en la app, gratis y con corrección automática.
Empezar a practicar