ProxySEO / Blog / Proxies para scraping de Google Maps sin CAPTCHAs: guía Python
Proxies

Proxies para scraping de Google Maps sin CAPTCHAs: guía Python

· 8 min de lectura
proxies para scraping de Google Maps

Si te dedicas a extraer datos de locales, reseñas, horarios o información de contacto a escala, tarde o temprano te topas con los proxies para scraping de Google Maps. No hay vuelta que darle. Google Maps es una de las fuentes más ricas en datos de negocio que existen, pero también una de las más celosamente protegidas: sistemas antibot avanzados, CAPTCHAs agresivos y bloqueos por IP hacen que un scraper mal configurado deje de funcionar en minutos. A veces en menos. En esta guía verás por qué Google detecta el scraping, qué tipo de proxies te convienen y cómo configurarlos en Python con Requests y con Playwright, con ejemplos que puedes llevar a producción.

¿Por qué Google Maps bloquea el scraping y cómo lo detecta?

Google no ofrece una API gratuita e ilimitada para acceder a los datos que ves en su interfaz, y los límites de la API oficial se agotan rápido en cualquier proyecto con ambición. Por eso muchos equipos acaban haciendo scraping. Y por eso muchos equipos se estrellan contra un muro: Google Maps apila varias capas de detección.

Las principales señales de detección

  • Rate limiting por IP: si una misma dirección lanza decenas de peticiones por minuto, Google activa bloqueos temporales o directamente permanentes.
  • Huella del navegador (fingerprinting): un Playwright o Selenium mal configurado deja pistas: navigator.webdriver, WebGL, canvas, headers incoherentes entre sí.
  • Patrones de comportamiento: scrolling mecánico, tiempos de espera idénticos, cero interacción humana. Todo eso levanta banderas rojas.
  • Reputación de la IP: rangos de datacenter conocidos o IPs ya quemadas reciben CAPTCHAs casi al instante.

¿Y qué pasa cuando Google sospecha de ti? Primero te sirve un CAPTCHA (reCAPTCHA o el clásico «unusual traffic»). Después, resultados incompletos. Al final, la IP bloqueada por horas o días. La solución no es hacer el scraper más lento. Es repartir las peticiones entre IPs limpias y de calidad.

Proxies para scraping de Google Maps: dedicados vs. compartidos

Elegir bien el tipo de proxy marca la diferencia entre un pipeline estable y un proyecto condenado a vivir de CAPTCHAs. Las opciones, a grandes rasgos:

  • Proxies compartidos: baratos, sí. Pero cientos de usuarios rotan por la misma IP, y si alguien la quema scrapeando Google, el CAPTCHA te lo heredas tú.
  • Proxies dedicados: la IP es solo tuya. Tu reputación depende únicamente de tu comportamiento, que con targets tan sensibles como Google es prácticamente imprescindible.
  • Rotación de IPs dedicadas: la combinación ideal: varias IPs dedicadas entre las que repartes las peticiones para mantener un volumen bajo por dirección.

Tip: para Google Maps, empieza con un ratio conservador de 10-20 peticiones por minuto por IP dedicada y rota entre varias. En ProxySEO obtienes proxies HTTP/s y SOCKSv5 dedicados, anónimos y con tráfico ilimitado, con IPs españolas ideales para extraer datos de negocios locales en España.

Una IP española, además, reduce la fricción geográfica. Google muestra menos CAPTCHAs cuando la localización de la IP cuadra con la query (near Madrid desde una IP de Madrid, por ejemplo). Tiene lógica: ¿por qué alguien en Valencia buscaría un dentista «cerca de Bilbao»?

Configuración de proxies HTTP y SOCKSv5 en Python con Requests y Playwright

Con Requests

Para llamadas a endpoints internos de Maps, el proxy se configura así:

import requests
proxies = {
  «http»: «http://usuario:password@es.proxyseo.es:8000»,
  «https»: «http://usuario:password@es.proxyseo.es:8000»,
}
resp = requests.get(url, proxies=proxies, timeout=10)

¿Prefieres SOCKSv5? Instala primero requests[socks] y cambia el esquema a socks5://usuario:password@host:puerto. Nada más.

Con Playwright

Playwright acepta el proxy a nivel de contexto, con lo que cubre todas las peticiones del navegador de una vez:

browser = playwright.chromium.launch(
  proxy={«server»: «http://es.proxyseo.es:8000»,
         «username»: «usuario», «password»: «password»}
)

A esto súmale –disable-blink-features=AutomationControlled, user-agents reales y esperas aleatorias entre acciones. Con proxies dedicados españoles de ProxySEO, tráfico ilimitado y soporte MCP para integrar el scraping directamente en tus agentes IA, tienes la base técnica necesaria para extraer datos de Google Maps de forma estable y sin CAPTCHAs.

Estrategias anti-CAPTCHA: rotación, delays y fingerprinting

Google Maps no lanza CAPTCHAs a diestro y siniestro. Los activa cuando huele algo raro. Así que la cuestión no es aprender a resolverlos, sino evitar que aparezcan. Hay tres frentes donde se decide todo:

Rotación inteligente de IPs

Ojo aquí, porque el error más común es rotar demasiado. Google Maps mantiene sesión mediante cookies, y una IP que cambia a cada petición levanta tantas sospechas como una que jamás cambia. Lo razonable es fijar una misma IP dedicada durante una sesión completa (mientras recorres una ciudad, por ejemplo, o una categoría) y rotar solo entre sesiones. Con ProxySEO tienes proxies dedicados con IP española que puedes fijar por sesión, sin ese patrón errático tan típico de los rotatorios públicos.

Delays realistas

Nadie consulta 50 fichas por segundo. Un humano lee, scrollea, se distrae. Implementa esperas aleatorias entre acciones:

  • Entre scroll y scroll: 1,5 a 4 segundos.
  • Al abrir una ficha de negocio: 3 a 6 segundos.
  • Al volver a la lista de resultados: 2 a 5 segundos.

Y un matiz importante: rangos aleatorios siempre. Nunca valores fijos. random.uniform(2, 5) se parece mucho más a una persona que un time.sleep(3) clavado, que es justo lo que haría una máquina.

Fingerprinting del navegador

Google mira el fingerprint: resolución de pantalla, fuentes, WebGL, plugins, coherencia del user-agent. ¿Cómo minimizar la huella?

  • Usa un navegador real automatizado con Selenium o Playwright en modo no headless (o el headless «nuevo», que emite señales distintas).
  • Define un viewport realista (1920×1080, 1366×768…).
  • Mantén el user-agent coherente con la IP: una IP española con user-agent en otro idioma genera fricción innecesaria.
  • Habilita JavaScript y cookies; desactivarlas es una señal clarísima de bot.
  • Si trabajas con Playwright, valora playwright-stealth para parchear navigator.webdriver.

Las tres capas juntas —IP dedicada estable, delays aleatorios y fingerprint limpio— hacen que el ratio de CAPTCHAs baje casi a cero en proyectos bien configurados. No es magia. Es no llamar la atención.

Código completo: script de scraping de Google Maps con proxies españoles

Un esqueleto funcional en Python con Playwright, listo para conectar a tu proxy dedicado de ProxySEO:

  1. Configura el proxy en el navegador:

En Playwright, el proxy se define al lanzar el contexto:

browser = playwright.chromium.launch(proxy={"server": "http://proxy.proxyseo.es:8080", "username": "USUARIO", "password": "CLAVE"})

  1. Bucle de scraping con sesión controlada:

El flujo básico: navega a https://www.google.es/maps, lanza la búsqueda, detecta el contenedor de resultados y itera con scroll incremental hasta que aparece «You’ve reached the end of the list». Para cada ficha, extrae nombre, dirección, teléfono, valoración y URL del sitio mediante selectores div[role="feed"] > div > div[jsaction] y sus anclas internas.

Consejo práctico: guarda los resultados en SQLite o CSV conforme scrapeas, no al final. Si Google corta la sesión a mitad de proceso, no pierdes lo hecho. Y registra la IP usada en cada lote: después te permitirá identificar qué proxies generan más bloqueos, algo que no siempre es obvio a simple vista.

No te olvides del guardado de estado de sesión: con context.storage_state(path="sesion.json") reutilizas cookies entre ejecuciones y pareces un usuario que vuelve, lo que reduce aún más la fricción. Y si trabajas con agentes IA, el soporte MCP de ProxySEO permite orquestar el scraping directamente desde tu agente, sin capa intermedia adicional.

Conclusión: scraping estable y a escala con la infraestructura adecuada

El scraping de Google Maps no falla por falta de código. Falla por infraestructura. Lo he visto más veces de las que puedo contar: un script impecable sobre IPs de datacenter quemadas o proxies compartidos, bloqueado en cuestión de minutos; mientras que uno correcto sobre proxies dedicados españoles aguanta meses sin que nadie lo toque.

Los pilares que hemos recorrido en esta guía se resumen en tres: proxies dedicados y limpios, comportamiento que imita al humano (delays, scroll, fingerprints coherentes) y respeto a los límites legales y éticos, extrayendo solo datos públicos y vigilando la carga que provocas sobre el servicio.

Con los proxies HTTP/s y SOCKSv5 dedicados, anónimos y con IP española de ProxySEO, tráfico ilimitado y soporte MCP para integrar el flujo de datos en tus agentes IA, tienes todas las piezas para montar un pipeline de extracción de Google Maps estable, escalable y sin CAPTCHAs. Mi recomendación: empieza con un piloto pequeño, valida la calidad de los datos y escala poco a poco añadiendo proxies y ciudades. La infraestructura soportará el crecimiento sin fricción.

Proxies profesionales con IP española

HTTP/s + SOCKSv5. Anónimos, dedicados y con tráfico ilimitado.

Ver Planes