ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo extraer datos comerciales locales con la API de búsqueda
Tutorial

Cómo extraer datos comerciales locales con la API de búsqueda

Obtenga datos comerciales de Google Maps a través de la API SERP de Scavio. Extraiga nombres comerciales, direcciones, calificaciones y números de teléfono para generar oportunidades de venta locales.

Obtener clave API gratisDocumentacion API

Google Maps contiene datos comerciales estructurados que son valiosos para la generación de oportunidades de venta, investigaciones de mercado y análisis competitivos. La extracción directa de mapas es difícil debido a la representación de JavaScript y la detección de bots. La API de Scavio devuelve datos comerciales locales como parte de los resultados SERP cuando incluye consultas basadas en la ubicación. Este tutorial extrae listados de empresas, información de contacto, calificaciones y direcciones de los resultados de búsqueda locales a $0,005 por consulta.

Requisitos previos

  • Python 3.9+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Una categoría de negocio objetivo y una ubicación

Guia paso a paso

Paso 1: Buscar empresas locales

Utilice consultas específicas de ubicación para activar el paquete local y los resultados de Maps en el SERP. La API devuelve datos comerciales locales estructurados.

Python
import os, requests, json, time

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'}
URL = 'https://api.scavio.dev/api/v1/search'

def search_local_businesses(category: str, location: str, num: int = 10) -> dict:
    resp = requests.post(URL, headers=H,
        json={'query': f'{category} in {location}', 'country_code': 'us', 'num_results': num})
    data = resp.json()
    # Extract local pack results (Maps listings)
    local_pack = data.get('local_results', data.get('local_pack', []))
    # Also check organic results for business pages
    organic = data.get('organic_results', [])
    return {
        'local_pack': local_pack,
        'organic': organic,
        'knowledge_graph': data.get('knowledge_graph', {}),
    }

results = search_local_businesses('plumbers', 'Austin TX')
print(f'Local pack: {len(results["local_pack"])} businesses')
print(f'Organic: {len(results["organic"])} results')

Paso 2: Extraer y normalizar datos comerciales

Analice los resultados locales para extraer el nombre de la empresa, la dirección, el teléfono, la calificación y el recuento de reseñas en un formato normalizado.

Python
def extract_business_data(search_results: dict) -> list:
    businesses = []
    # From local pack
    for biz in search_results.get('local_pack', []):
        businesses.append({
            'name': biz.get('title', biz.get('name', '')),
            'address': biz.get('address', ''),
            'phone': biz.get('phone', ''),
            'rating': biz.get('rating', ''),
            'reviews': biz.get('reviews', biz.get('reviews_count', 0)),
            'type': biz.get('type', ''),
            'website': biz.get('website', biz.get('link', '')),
            'source': 'local_pack',
        })
    # From organic results (business websites)
    for r in search_results.get('organic', []):
        if any(signal in r.get('link', '').lower() for signal in ['yelp.com', 'yellowpages', 'bbb.org']):
            continue  # Skip directories
        businesses.append({
            'name': r.get('title', ''),
            'website': r.get('link', ''),
            'snippet': r.get('snippet', ''),
            'source': 'organic',
        })
    return businesses

businesses = extract_business_data(results)
print(f'Extracted {len(businesses)} businesses')
for b in businesses[:5]:
    print(f'  {b["name"][:40]} | {b.get("rating", "N/A")} stars | {b.get("phone", "N/A")}')

Paso 3: Búsqueda por lotes en múltiples categorías y ubicaciones

Escale la extracción en múltiples categorías comerciales y ubicaciones. Exporte los resultados a CSV para usarlos en CRM o herramientas de divulgación.

Python
import csv

def batch_local_search(searches: list, output_file: str = 'local_businesses.csv') -> list:
    all_businesses = []
    for category, location in searches:
        results = search_local_businesses(category, location)
        businesses = extract_business_data(results)
        for b in businesses:
            b['category'] = category
            b['location'] = location
        all_businesses.extend(businesses)
        print(f'{category} in {location}: {len(businesses)} businesses')
        time.sleep(0.3)
    # Export to CSV
    if all_businesses:
        keys = ['name', 'category', 'location', 'address', 'phone', 'rating', 'reviews', 'website']
        with open(output_file, 'w', newline='') as f:
            writer = csv.DictWriter(f, fieldnames=keys, extrasaction='ignore')
            writer.writeheader()
            writer.writerows(all_businesses)
    print(f'\nTotal: {len(all_businesses)} businesses exported to {output_file}')
    print(f'Cost: ${len(searches) * 0.005:.3f}')
    return all_businesses

searches = [
    ('plumbers', 'Austin TX'),
    ('electricians', 'Austin TX'),
    ('HVAC contractors', 'Austin TX'),
]
batch_local_search(searches)

Ejemplo en Python

Python
import os, requests, time

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'}

def local_businesses(category, location):
    resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'query': f'{category} in {location}', 'country_code': 'us', 'num_results': 10})
    data = resp.json()
    local = data.get('local_results', data.get('local_pack', []))
    print(f'{category} in {location}: {len(local)} local results')
    for b in local[:5]:
        name = b.get('title', b.get('name', ''))
        rating = b.get('rating', 'N/A')
        print(f'  {name[:35]} | {rating} stars')

for cat in ['plumbers', 'electricians']:
    local_businesses(cat, 'Austin TX')
    time.sleep(0.3)

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

async function localBusinesses(category, location) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: `${category} in ${location}`, country_code: 'us', num_results: 10 })
  });
  const data = await resp.json();
  const local = data.local_results || data.local_pack || [];
  console.log(`${category} in ${location}: ${local.length} results`);
  local.slice(0, 5).forEach(b => {
    console.log(`  ${(b.title || b.name || '').slice(0, 35)} | ${b.rating || 'N/A'} stars`);
  });
}

(async () => {
  await localBusinesses('plumbers', 'Austin TX');
  await localBusinesses('electricians', 'Austin TX');
})();

Salida esperada

JSON
Local pack: 8 businesses
Organic: 10 results

Extracted 12 businesses
  ABC Plumbing & Drain Service          | 4.8 stars | (512) 555-0123
  Austin Reliable Plumbers               | 4.6 stars | (512) 555-0456
  Radiant Plumbing & Air Conditioning    | 4.9 stars | (512) 555-0789

plumbers in Austin TX: 8 businesses
electricians in Austin TX: 7 businesses
HVAC contractors in Austin TX: 6 businesses

Total: 21 businesses exported to local_businesses.csv
Cost: $0.015

Tutoriales relacionados

  • Cómo construir una canalización local de generación de leads
  • Cómo reemplazar su Amazon Scraper con Search API

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.9+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Una categoría de negocio objetivo y una ubicación. 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

Obtenga datos comerciales de Google Maps a través de la API SERP de Scavio. Extraiga nombres comerciales, direcciones, calificaciones y números de teléfono para generar oportunidades de venta locales.

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