Comment scraper les résultats Google Maps avec Python
Lieux, notes, avis et coordonnées de Google Maps en JSON, pourquoi la Places API officielle coûte cher, et le coût réel d'une recherche Maps. Testé, août 2026.

Vous voulez les commerces que Google Maps affiche pour une requête : noms, notes, nombre d’avis, adresses, numéros de téléphone, sites web. Cet article couvre les trois façons de les obtenir, avec des chiffres réels sur ce que chacune coûte, et un exemple Python que nous avons exécuté avant publication.
Pourquoi pas la Places API officielle ?
La voie officielle existe et est la bonne réponse pour certains produits, mais trois caractéristiques surprennent les gens au moment où il est trop tard pour changer de cap :
- Prix. La Text Search de la Places API coûte 32,00 $ pour 1 000 requêtes sur le palier Pro, vérifié sur la page de tarifs de Google le 20 octobre 2026, avec 5 000 appels gratuits par mois. Le prix unitaire ne commence à baisser significativement qu’au-delà de 100 000 requêtes mensuelles.
- Plafonds de résultats. Une Text Search renvoie au maximum 60 lieux sur trois pages. Pour des requêtes du type « restaurants dans une ville », l’interface cartographique en sait bien plus long que ce que l’API vous donnera.
- Licence. Les données Places viennent avec des restrictions sur leur stockage et leur affichage. Si votre cas d’usage est de construire une liste de prospects ou un jeu de données, les conditions d’utilisation sont la vraie contrainte, pas le code.
L’alternative du fait maison, piloter un navigateur headless sur l’interface Maps, casse pour les mêmes raisons que le scraping de Google Search casse : blocages IP, balisage obfusqué et changeant, et un panneau de résultats à défilement qui nécessite une vraie session de navigateur par requête. C’est un projet de maintenance, pas un script.
La version qui fonctionne
Envoyez la requête à une API qui possède les navigateurs et le parsing, et récupérez du JSON en retour :
import requests
API_KEY = "faf_live_..." # votre clé FastAF
resp = requests.get(
"https://api.fastaf.co/v1/maps",
params={
"query": "best pizza in Naples Italy",
"page": 0,
},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
for place in resp.json()["search_results"]:
print(f'{place["rating"]} ({place["reviews"]:>6}) {place["title"]}')
Nous avons exécuté exactement cette requête en écrivant cet article (août 2026). Elle a renvoyé 20 lieux pour 5 crédits, le premier étant L’Antica Pizzeria da Michele : note 4,3, 54 724 avis, gamme de prix, adresse, numéro de téléphone, site web, état d’ouverture et coordonnées GPS, le tout en simples champs JSON. Pas de navigateur, pas de proxies, pas de parsing.
Quels champs obtenez-vous par lieu ?
Chaque entrée de search_results porte les données commerciales que le panneau Maps affiche :
| Champ | Exemple de notre test |
|---|---|
title |
L’Antica Pizzeria da Michele |
rating / reviews |
4.3 / 54724 |
type, types |
Pizza restaurant, Italian restaurant, … |
price |
€1–10 |
address |
Via Cesare Sersale, 1, 80139 Napoli NA, Italy |
phone |
+39 392 … |
website |
le site du commerce lui-même |
open_state |
Closed · Opens 10:30 AM |
gps_coordinates |
latitude / longitude |
place_id, data_id |
identifiants stables pour des recherches ultérieures |
Deux paramètres à connaître au-delà de query : ll fixe la recherche sur des coordonnées et un zoom (@40.85,14.26,14z) pour que vous contrôliez la fenêtre de la carte au lieu de laisser le texte de la requête la deviner, et page fait défiler les pages de résultats, environ 20 lieux à la fois, au-delà du plafond de 60 lieux de l’API officielle.
Combien coûte une recherche Maps ?
Une recherche Google Maps sur FastAF coûte 5 crédits, comme une requête Google Search. Sur le pack Scale (99 $ pour 300 000 crédits) cela fait 60 000 recherches Maps, soit 1,65 $ pour 1 000. Les mêmes 60 000 recherches sur la Text Search officielle de la Places API à 32,00 $ pour 1 000 reviennent à 1 760 $ (55 000 facturées, après les 5 000 appels gratuits du mois), et renvoient au maximum 60 lieux chacune.
L’offre gratuite est de 500 crédits sans carte, soit 100 recherches Maps, assez pour vérifier la couverture des champs sur vos propres requêtes avant de décider quoi que ce soit. Les requêtes échouées ne sont jamais facturées : les crédits sont réservés quand la requête démarre et rendus si elle ne revient pas avec un résultat.
Listes de prospects : la boucle pratique
L’usage le plus courant de cet endpoint est la génération de prospects locaux. La boucle est : chercher une catégorie dans une ville, filtrer sur les champs, et vous avez une liste qualifiée en quelques minutes :
def places(query, pages=3):
for page in range(pages):
resp = requests.get(
"https://api.fastaf.co/v1/maps",
params={"query": query, "page": page},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
yield from resp.json()["search_results"]
# Commerces avec une vraie traction mais sans site web : les prospects classiques d'une agence web.
leads = [
p for p in places("dentist in Austin TX")
if p.get("reviews", 0) > 50 and not p.get("website")
]
Trois pages d’une requête coûtent 15 crédits. Un balayage de 50 villes de la même catégorie à trois pages chacune coûte 750 crédits, environ 0,29 $ sur le pack Growth : les e-mails de suivi vous coûteront plus cher que les données.