Les données Google Maps alimentent la génération de leads locaux, l'analyse concurrentielle et les workflows d'intelligence géographique. Scraper Maps directement n'est pas fiable car Google utilise de lourdes protections anti-bot et modifie fréquemment sa structure DOM. L'API Scavio renvoie des données Maps structurées incluant les noms d'entreprises, adresses, numéros de téléphone, notes, nombre d'avis et horaires d'ouverture sous forme de JSON propre. Ce tutoriel montre comment interroger des données d'entreprises locales via une API SERP en Python et JavaScript. Vous allez construire un pipeline simple qui extrait et filtre les entreprises par note et nombre d'avis.
Prérequis
- Python 3.8+ ou Node.js 18+ installé
- bibliothèque requests installée (Python)
- Une clé API Scavio depuis scavio.dev
- Un lieu cible et une catégorie d'entreprise à rechercher
Parcours
Étape 1: Configurer la requête de recherche
Configurez votre clé API et définissez la requête de recherche d'entreprises locales avec le contexte géographique.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
QUERY = "plumbers in Austin TX"Étape 2: Récupérer les résultats Maps
Envoyez une requête POST à l'API Scavio avec une requête Google Maps. La réponse inclut local_results avec les détails des entreprises.
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", [])Étape 3: Filtrer par note et avis
Filtrez les entreprises pour trouver des leads de qualité basés sur une note minimale et un nombre d'avis.
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')}")Étape 4: Exporter les leads en JSON
Enregistrez les leads filtrés dans un fichier JSON pour l'importation CRM ou les pipelines de prospection.
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")Exemple 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")Exemple 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)
);Sortie attendue
A list of local businesses with name, address, phone, rating, and review count extracted from Google Maps as structured JSON.