ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo exportar por lotes datos de Google Maps a CSV
Tutorial

Cómo exportar por lotes datos de Google Maps a CSV

Exporte datos comerciales locales en múltiples categorías y ciudades a CSV utilizando la API de Scavio. Automatice la generación de listas de clientes potenciales sin raspado manual de mapas.

Obtener clave API gratisDocumentacion API

La creación de listas de clientes potenciales a partir de Google Maps es un flujo de trabajo fundamental para las agencias locales, los buscadores de franquicias y los equipos de ventas B2B. El proceso manual (buscar una categoría en una ciudad, copiar resultados, repetir) no supera a un puñado de mercados. La API de Scavio acepta consultas de Google Maps y devuelve JSON estructurado con el nombre de la empresa, dirección, teléfono, calificación, recuento de reseñas y sitio web. Este tutorial muestra cómo recorrer una matriz de categorías y ciudades, recopilar todos los resultados y escribirlos en un único archivo CSV listo para la importación de CRM o herramientas de divulgación.

Requisitos previos

  • Python 3.8 o superior instalado
  • solicitudes y módulos csv (csv está en la biblioteca estándar)
  • Una clave API de Scavio de scavio.dev
  • Una lista de categorías y ciudades objetivo

Guia paso a paso

Paso 1: Definir la matriz de categorías y ciudades

Cree dos listas que representen las categorías y ciudades que desea realizar consultas cruzadas. El script buscará cada combinación.

Python
categories = ["plumber", "electrician", "hvac contractor"]
cities = ["Austin TX", "Denver CO", "Portland OR"]

Paso 2: Consulta Google Maps para cada combinación

PUBLICAR en el punto final de búsqueda de Scavio con la plataforma configurada en google_maps y la consulta combinando categoría y ciudad. Recopile todos los resultados_locales en una lista plana.

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

all_results = []
for category in categories:
    for city in cities:
        query = f"{category} in {city}"
        response = requests.post(
            ENDPOINT,
            headers={"x-api-key": API_KEY},
            json={"query": query, "platform": "google_maps"}
        )
        data = response.json()
        for biz in data.get("local_results", []):
            biz["search_category"] = category
            biz["search_city"] = city
            all_results.append(biz)
        print(f"{query}: {len(data.get('local_results', []))} results")

Paso 3: Escribir resultados en CSV

Utilice el módulo csv para escribir todos los registros comerciales recopilados en un archivo. Incluya columnas para nombre, dirección, teléfono, sitio web, calificación, recuento de reseñas y metadatos de búsqueda.

Python
import csv

fields = ["search_category", "search_city", "title", "address", "phone", "website", "rating", "reviews"]
with open("google_maps_export.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=fields, extrasaction="ignore")
    writer.writeheader()
    writer.writerows(all_results)
print(f"Exported {len(all_results)} businesses to google_maps_export.csv")

Paso 4: Deduplicar por teléfono o dirección

Los resultados de Google Maps en consultas superpuestas pueden incluir duplicados. Elimínelos ingresando el número de teléfono antes de escribir el CSV final.

Python
seen = set()
unique = []
for biz in all_results:
    key = biz.get("phone") or biz.get("address", "")
    if key and key not in seen:
        seen.add(key)
        unique.append(biz)
print(f"Deduplicated: {len(all_results)} -> {len(unique)} businesses")
all_results = unique

Ejemplo en Python

Python
import os
import csv
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def fetch_maps(query: str) -> list[dict]:
    r = requests.post(
        ENDPOINT,
        headers={"x-api-key": API_KEY},
        json={"query": query, "platform": "google_maps"}
    )
    r.raise_for_status()
    return r.json().get("local_results", [])

def batch_export(categories: list[str], cities: list[str], output: str) -> None:
    all_biz = []
    for cat in categories:
        for city in cities:
            results = fetch_maps(f"{cat} in {city}")
            for biz in results:
                biz["category"] = cat
                biz["city"] = city
            all_biz.extend(results)
            print(f"{cat} in {city}: {len(results)} results")
    seen, unique = set(), []
    for biz in all_biz:
        key = biz.get("phone") or biz.get("address", "")
        if key and key not in seen:
            seen.add(key)
            unique.append(biz)
    fields = ["category", "city", "title", "address", "phone", "website", "rating", "reviews"]
    with open(output, "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=fields, extrasaction="ignore")
        writer.writeheader()
        writer.writerows(unique)
    print(f"Exported {len(unique)} unique businesses to {output}")

if __name__ == "__main__":
    batch_export(
        ["plumber", "electrician", "hvac contractor"],
        ["Austin TX", "Denver CO", "Portland OR"],
        "google_maps_export.csv"
    )

Ejemplo en JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
const fs = require("fs");

async function fetchMaps(query) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query, platform: "google_maps" })
  });
  const data = await res.json();
  return data.local_results || [];
}

async function batchExport(categories, cities, output) {
  const all = [];
  for (const cat of categories) {
    for (const city of cities) {
      const results = await fetchMaps(`${cat} in ${city}`);
      results.forEach(b => { b.category = cat; b.city = city; });
      all.push(...results);
      console.log(`${cat} in ${city}: ${results.length} results`);
    }
  }
  const seen = new Set();
  const unique = all.filter(b => {
    const key = b.phone || b.address || "";
    if (key && !seen.has(key)) { seen.add(key); return true; }
    return false;
  });
  const header = "category,city,title,address,phone,website,rating,reviews";
  const rows = unique.map(b =>
    [b.category, b.city, b.title, b.address, b.phone, b.website, b.rating, b.reviews]
      .map(v => `"${(v || "").toString().replace(/"/g, '""')}"`).join(",")
  );
  fs.writeFileSync(output, [header, ...rows].join("\n"));
  console.log(`Exported ${unique.length} unique businesses to ${output}`);
}

batchExport(
  ["plumber", "electrician", "hvac contractor"],
  ["Austin TX", "Denver CO", "Portland OR"],
  "google_maps_export.csv"
).catch(console.error);

Salida esperada

JSON
{
  "local_results": [
    {
      "position": 1,
      "title": "Radiant Plumbing & Air Conditioning",
      "address": "9521 US-290 W, Austin, TX 78736",
      "phone": "(512) 555-0147",
      "website": "https://radiantplumbing.com",
      "rating": 4.9,
      "reviews": 3842,
      "hours": "Open 24 hours",
      "type": "Plumber"
    }
  ]
}

Tutoriales relacionados

  • Cómo crear una canalización de clientes potenciales de Google Maps
  • Cómo crear un canal de difusión para PYMES desde Google Maps hasta el correo electrónico
  • Cómo extraer datos de Google Maps mediante la API de búsqueda

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8 o superior instalado. solicitudes y módulos csv (csv está en la biblioteca estándar). Una clave API de Scavio de scavio.dev. Una lista de categorías y ciudades objetivo. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de datos comerciales de Google Maps (mayo de 2026)

Read more
Best Of

La mejor API de Google Maps para la extracción de clientes potenciales en 2026

Read more
Glossary

Extracción de clientes potenciales de Google Maps

Read more
Glossary

Costo de la API de Google Maps Places

Read more
Solution

Enriquezca las campañas de correo electrónico frío con datos comerciales de Google Maps

Read more
Solution

Extraiga clientes potenciales de empresas locales de Google Maps a través de n8n

Read more

Empieza a construir

Exporte datos comerciales locales en múltiples categorías y ciudades a CSV utilizando la API de Scavio. Automatice la generación de listas de clientes potenciales sin raspado manual de mapas.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad