ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment extraire des données d'entreprise locales avec l'API de recherche
Tutoriel

Comment extraire des données d'entreprise locales avec l'API de recherche

Obtenez les données des entreprises Google Maps via l'API SERP Scavio. Extrayez les noms, adresses, notes et numéros de téléphone des entreprises pour la génération de leads locaux.

Obtenez une clé API gratuiteDocumentation API

Google Maps contient des données structurées sur les entreprises, précieuses pour la génération de leads, les études de marché et l'analyse concurrentielle. Gratter directement Maps est difficile à cause du rendu JavaScript et de la détection des robots. L'API Scavio renvoie des données commerciales locales dans le cadre des résultats SERP lorsque vous incluez des requêtes basées sur la localisation. Ce didacticiel extrait les listes d'entreprises, les coordonnées, les notes et les adresses des résultats de recherche locaux à 0,005 $ par requête.

Prérequis

  • Python 3.9+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Une catégorie d'entreprise cible et un lieu

Parcours

Étape 1: Rechercher des entreprises locales

Utilisez des requêtes spécifiques à un lieu pour déclencher le pack local et les résultats Maps dans le SERP. L'API renvoie des données structurées sur les entreprises locales.

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')

Étape 2: Extraire et normaliser les données d'entreprise

Analysez les résultats locaux pour extraire le nom, l'adresse, le téléphone, la note et le nombre d'avis de l'entreprise dans un format normalisé.

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")}')

Étape 3: Recherche par lots dans plusieurs catégories et lieux

Étendez l'extraction à plusieurs catégories d'entreprises et lieux. Exportez les résultats en CSV pour les utiliser dans des CRM ou des outils de prospection.

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)

Exemple 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)

Exemple 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');
})();

Sortie attendue

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

Tutoriels associés

  • Comment construire un pipeline de génération de leads locaux
  • Comment remplacer votre scraper Amazon par l'API Search

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.9+ installé. bibliothèque requests installée. Une clé API Scavio depuis scavio.dev. Une catégorie d'entreprise cible et un lieu. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleure API Google Maps pour l'extraction de leads en 2026

Read more
Best Of

Meilleures API de données commerciales Google Maps (Mai 2026)

Read more
Use Case

Génération de leads locaux Google Maps

Read more
Use Case

Génération de leads pour agences locales via Google Maps

Read more
Solution

Enrichissez vos campagnes d'e-mails froids avec les données commerciales de Google Maps

Read more
Solution

Extraire des prospects d'entreprises locales depuis Google Maps via n8n

Read more

Commencer

Obtenez les données des entreprises Google Maps via l'API SERP Scavio. Extrayez les noms, adresses, notes et numéros de téléphone des entreprises pour la génération de leads locaux.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité