Los datos de Google Maps impulsan la generación de oportunidades de venta locales, el análisis competitivo y los flujos de trabajo de inteligencia de ubicación. La extracción directa de mapas no es confiable porque Google utiliza fuertes protecciones anti-bot y cambia con frecuencia su estructura DOM. La API de Scavio devuelve datos estructurados de Maps, incluidos nombres comerciales, direcciones, números de teléfono, calificaciones, recuentos de reseñas y horarios de apertura, como JSON limpio. Este tutorial muestra cómo consultar datos comerciales locales a través de una API SERP en Python y JavaScript. Creará un canal simple que extraiga y filtre empresas por calificación y recuento de reseñas.
Requisitos previos
- Python 3.8+ o Node.js 18+ instalado
- solicita biblioteca instalada (Python)
- Una clave API de Scavio de scavio.dev
- Una ubicación de destino y una categoría de negocio para buscar
Guia paso a paso
Paso 1: Configurar la consulta de búsqueda
Configure su clave API y defina la consulta de búsqueda de empresas locales con el contexto de ubicación.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
QUERY = "plumbers in Austin TX"Paso 2: Obtener resultados de mapas
PUBLICAR en la API de Scavio con una consulta de Google Maps. La respuesta incluye resultados_locales con detalles comerciales.
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": QUERY, "type": "maps"})
data = resp.json()
locals = data.get("local_results", [])Paso 3: Filtrar por calificación y reseñas
Filtre empresas para encontrar clientes potenciales de alta calidad según la calificación mínima y el recuento de reseñas.
quality_leads = [
b for b in locals
if float(b.get("rating", 0)) >= 4.0 and int(b.get("reviews", 0)) >= 20
]
for b in quality_leads:
print(f"{b['title']} - {b.get('rating')} ({b.get('reviews')} reviews)")
print(f" {b.get('address', 'N/A')} | {b.get('phone', 'N/A')}")Paso 4: Exportar leads a JSON
Guarde los clientes potenciales filtrados en un archivo JSON para importar o canalizar la extensión de CRM.
import json
leads = [{
"name": b.get("title", ""),
"address": b.get("address", ""),
"phone": b.get("phone", ""),
"rating": b.get("rating", ""),
"reviews": b.get("reviews", 0),
"url": b.get("link", ""),
} for b in quality_leads]
with open("leads.json", "w") as f:
json.dump(leads, f, indent=2)
print(f"Exported {len(leads)} leads")Ejemplo en Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "plumbers in Austin TX", "type": "maps"})
for b in resp.json().get("local_results", [])[:5]:
print(f"{b['title']} - {b.get('rating')} stars")Ejemplo en JavaScript
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"},
body: JSON.stringify({platform: "google", query: "plumbers in Austin TX", type: "maps"})
});
const data = await r.json();
(data.local_results || []).slice(0, 5).forEach(b =>
console.log(b.title, b.rating, b.reviews)
);Salida esperada
A list of local businesses with name, address, phone, rating, and review count extracted from Google Maps as structured JSON.