El problema
El raspado a escala de Google Maps requiere navegadores sin cabeza, rotación de proxy y analizadores personalizados que se interrumpen cuando Google actualiza su interfaz de usuario. La API oficial de Places cobra 17 dólares por cada 1.000 solicitudes de datos detallados. Outscraper cobra 3 dólares por cada 1.000 registros. Los equipos necesitan un enfoque más económico y confiable.
La solucion de Scavio
Consulta Google con búsquedas específicas de ubicación que activan resultados de Map Pack. La API SERP devuelve el nombre de la empresa, la dirección, la calificación, el recuento de reseñas y el número de teléfono de los listados de Map Pack. No se necesita navegador sin cabeza ni raspado específico de Maps.
Antes
Antes del cambio, un equipo de generación de leads utilizó proxies residenciales de Puppeteer + para eliminar Google Maps. Configuración: 2 días. Mantenimiento: 3-4 horas/semana cuando los selectores se averiaron. Costo: $60/mes proxies + cálculo. La tasa de éxito cayó al 50% después de la actualización anti-bot de Google de marzo de 2026.
Después
Después de cambiar a SERP API, el equipo consulta a "dentistas cerca de [vecindario]" en 50 áreas. 50 consultas devuelven entre 150 y 250 empresas con calificación, recuento de reseñas y dirección. Costo: $0.25/día. No necesita mantenimiento. Tasa de éxito: 99%+.
Para quien es
Agencias de generación de leads, consultores de marketing locales y equipos de ventas que necesitan datos comerciales de Google Maps sin API costosas ni raspadores frágiles.
Beneficios clave
- Datos del paquete de mapas a $0,005/consulta frente a $17/1.000 API de lugares
- Nombre de la empresa, calificación, recuento de reseñas, dirección, teléfono
- Sin navegador sin cabeza ni infraestructura proxy
- Cubrir ciudades enteras mediante consultas a nivel de barrio
- Salida JSON consistente sin mantenimiento del analizador
Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def maps_leads(business_type, city, neighborhoods):
leads = []
for n in neighborhoods:
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google',
'query': f'{business_type} near {n} {city}'},
timeout=10).json()
for result in r.get('organic_results', [])[:5]:
leads.append({'name': result.get('title', ''),
'rating': result.get('rating', ''),
'reviews': result.get('review_count', '')})
return leads
leads = maps_leads('dentist', 'Chicago', ['Loop', 'Lincoln Park', 'Wicker Park'])
print(f'Found {len(leads)} leads')Ejemplo en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function mapsLeads(type, city, areas) {
const leads = [];
for (const area of areas) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({platform: 'google', query: `${type} near ${area} ${city}`})
}).then(r => r.json());
(r.organic_results || []).slice(0, 5).forEach(r =>
leads.push({name: r.title, rating: r.rating, reviews: r.review_count}));
}
return leads;
}
mapsLeads('dentist', 'Chicago', ['Loop', 'Lincoln Park']).then(l => console.log(`${l.length} leads`));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA