Test des 5 meilleurs solutions de scraping Google Maps (prix / performance)

Carte des bouchons de Lyon sur un mobile

Ecrit par Joseph Contesse le 03/06/2026

    Savez-vous ce qui lie la tech de pointe et tradition culinaire lyonnaise ? Absolument rien. Et c'est exactement pour ça qu'on adore le scraping. Pour notre grand comparatif des outils de scraping de Google Maps, j'ai décidé de bouder les éternels salons de coiffure et agences immobilières. À la place, on s'attaque à un monument : le bouchon lyonnais. Derrière ce nom rigolo se cachent les restaurants historiques de Lyon, réputés pour leur ambiance unique et leurs plats... disons, très riches en lipides. Alors, quel est le meilleur outil pour récupérer les données Google Maps de ces pépites locales ? Enfilez votre plus beau tablier, on passe au grill les scrapers du marché. Nous allons scraper tous les bouchons qui se trouvent dans la capitale des Gaules avec cette recherche. Notre recherche étant de petite taille et sur un périmètre géographique limité nous évaluerons les performances des plateformes de scraping selon leurs offres de base.

Pour en savoir plus concernant la légalité du scraping de Google Maps, veuillez vous rendre ici. Pour l'API officielle de Google ici.

1. OpenScraper.ai

Vue de l'utilisation de la plateforme OpenScraper lors du scraping de Google Maps

   Et le grand gagnant de notre essai est… Openscraper ! Cocorico, c’est une solution française qui monte sur la plus haute marche du podium 🇫🇷.

Si vous cherchez le meilleur rapport qualité-prix pour remplir votre base de données sans vider votre portefeuille, ne cherchez pas plus loin : l'outil nous a sorti un tarif imbattable, ultra-compétitif de 0,00029 $ par ligne extraite. Non seulement leur offre en Pay-as-you-go est flexible (vous n'avez pas besoin d'abonnement), mais le scraper a avalé les listings de Google en seulement 17,5 secondes chrono soit la deuxième meilleure perf du benchmark.
Travail carré : récupération de l'intégralité des 125 résultats attendus sans aucune ligne manquante.
Alors oui, l’interface SaaS est moins exhaustive que d’autres en termes de paramètre et très "API-first", mais il suffit de générer un petit script pour qu’elle fasse des merveilles. Ce qui est très facile avec ChatGPT.

Je vous donne le script que j'ai utilisé pour le test et qui enregistre les résultats en CSV. Veillez juste à remplacer "YOUR_API_KEY" par votre clé API !

import requests
import csv

print("C'est parti ! Que l'extraction des données de Google Maps commence...")
response = requests.post(
    "https://api.openscraper.ai/runs",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
    "module": "googlemaps_matrix",
    "params": {
        "url": "https://www.google.com/maps/search/bouchon,+Lyon/@45.7613904,4.830659,15z/data=!4m2!2m1!6e5?entry=ttu&g_ep=EgoyMDI2MDYyNC4wIKXMDSoASAFQAw%3D%3D",
        "language": "Français (France)",
        "country": "France",
        "ratings": "Any rating",
        "details": False,
        "images": False,
        "collect_contacts": False,
        "max_results": 200,
    },
    "sync": True,
    "sync_timeout_seconds": 120,
},
    timeout=180,
)
response.raise_for_status()
data = response.json()

results = data.get("result") or []

if results:
    output_filename = "openscraper_results.csv"
    
    # Collecter dynamiquement tous les noms de champs possibles à partir des résultats
    # pour s'assurer de ne manquer aucune colonne.
    all_keys = set()
    for place in results:
        all_keys.update(place.keys())
    fieldnames = sorted(list(all_keys)) # Trier pour un ordre de colonnes cohérent

    with open(output_filename, 'w', newline='', encoding='utf-8') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames, extrasaction='ignore', restval='')
        writer.writeheader()
        for place in results:
            writer.writerow(place)

    print(f"{len(results)} résultats avec {len(fieldnames)} colonnes ont été sauvegardés dans '{output_filename}'")
else:
    print("Aucun résultat n'a été trouvé.")

On appréciera  :
    • Un tarif imbattable, ultra-compétitif de 0,00029 $ par ligne
    • Deuxième solution la plus rapide du marché ⚡
    • Une solution française 🇫🇷
    • Les données récoltées sont complètes 🌾🚜

On aime moins :
    • Plus optimisé en API qu'en 100 % SaaS.

2. APIfy :

Vue de l'utilisation de la plateforme APIfy lors du scraping de Google Maps

   À la deuxième place de notre classement, on retrouve Apify. Niveau rapidité, rien à redire : il passe sous la barre de notre gagnant en bouclant le travail en 12 petites secondes. C’est vif. De plus le nombre de paramétres (paramétres géographiques, enrichissement de contacts, coûts capés par run de scraping) est extrêmement complet.

Là où le bât blesse, c'est sur la quantité dans l'assiette : l'outil a calé en route en ne nous rapportant que 109 résultats sur les 120 bouchons lyonnais attendus. Pour la complétude, on repassera. Côté addition, après avoir lancé l'extraction, l'interface affichait une note de 0,436 $, ce qui nous fait grimper à 0,004 $ par lieu scrapé — soit presque quatre fois plus cher qu'Openscraper. On apprécie quand même le geste de la maison qui offre 5 $ de crédits gratuits chaque mois. En revanche, impossible de consommer à la carte en Pay-as-you-go : vous serez obligé de passer à la caisse avec un abonnement mensuel fixe :

Plans d'abonnement du site APIfy

On appréciera  :
    • Un scraping très rapide ⚡
    • Très paramétrable

On aime moins :
    • Des trous dans la requête (données incomplètes)

3. Hasdata :

Vue de l'utilisation de la plateforme Hasdata lors du scraping de Google Maps

  Sur la troisième marche du podium, on retrouve Hasdata. Pour le coup, pas de jaloux sur la quantité : le scraper a ramené 127 résultats dans ses filets. Après un petit nettoyage des données, on a débusqué deux doublons, ce qui nous ramène exactement à un total réel de 125 établissements, soit un sans-faute identique à celui d'Openscraper en termes de complétude. En revanche, l'outil se montre un peu moins compétitif sur le reste. Côté chrono, il lui faut 29,22 secondes pour faire le tour de la question, ce qui reste tout à fait honorable mais plus lent que le peloton de tête. C'est surtout au moment de passer à la caisse que l'expérience se corse : à 0,0098 $ par ligne, le tarif grimpe nettement (40 crédits). De plus, la plateforme ne propose pas d'option en Pay-as-you-go, ce qui vous obligera à souscrire à un forfait mensuel fixe même pour des besoins ponctuels. Les forfaits en question :

Plans d'abonnement du site Hasdata

Comme pour Openscraper, on a besoin de coder pour l’utiliser correctement sur Google Maps en se connectant à leur API. Leur plateforme SaaS seule ne permettant pas de récupérer des résultats au delà du 20ème résultat par url.

Voici un code pour extraire les résultats en formats Excel (remplacez bien "YOUR_API_KEY" par votre clé API 😉) :

import http.client
import json
import time

def scrape_all_pages():
    """
    Scrapes Google Maps search results by paginating through them
    and saves the combined results to a JSON file.
    """
    all_results = []
    headers = {
        'x-api-key': "YOUR_API_KEY",
        'Content-Type': "application/json"
    }

    # Boucle de 0 à 140 par pas de 20
    for start in range(0, 141, 20):
        print(f"Récupération des résultats à partir de l'index {start}...")
        conn = http.client.HTTPSConnection("api.hasdata.com")
        
        # Construit le chemin de la requête avec le paramètre 'start' dynamique
        path = (f"/scrape/google-maps/search?q=bouchon%2C+Lyon&domain=google.fr&gl=fr&hl=fr"
                f"&start={start}&ll=%4045.7613904%2C4.830659%2C15z")
        
        conn.request("GET", path, headers=headers)
        res = conn.getresponse()
        data = res.read()
        response_json = json.loads(data.decode("utf-8"))
        # Correction : la bonne clé est "localResults" et non "results"
        results_on_page = response_json.get("localResults", [])
        all_results.extend(results_on_page)
        
        conn.close()
        time.sleep(1) # Petite pause pour être respectueux envers l'API

    output_filename = "hasdata_results.json"
    with open(output_filename, 'w', encoding='utf-8') as f:
        json.dump(all_results, f, indent=2, ensure_ascii=False)

    print(f"\nExtraction terminée. {len(all_results)} résultats ont été sauvegardés dans '{output_filename}'.")

if __name__ == "__main__":
    start_time = time.time()
    try:
        scrape_all_pages()
    except Exception as e:
        print(f"Une erreur inattendue est survenue : {e}")
    finally:
        end_time = time.time()
        duration = end_time - start_time
        print(f"\nTemps d'exécution total : {duration:.2f} secondes.")

On appréciera  :
    • Les données récoltées sont complètes ✅

On aime moins :
    • Le prix 💳💥

4. Phantombuster :

Vue de l'utilisation de la plateforme Phantombuster lors du scraping de Google Maps

   La plateforme de Phantombuster est très facile d’utilisation ce qui est parfait quand on est en proie aux terribles pics glycémiques liés à la digestion après la fréquentation d’un Bouchon Lyonnais. Il n’y a pas sur Phantombuster de décompte des crédits mais un décompte du temps de scraping utilisé par leurs scrapers.
Pour télécharger les données vous devez opter au minimum pour leur offre Start à 56 euros par mois et vous avez le droit à 20h d'exécution. Ce qui n’est pas tant que ça vu la lenteur de leurs produits 😥 Il nous a fallu 11 minutes pour scraper tous les lieux de notre url. Phantombuster en a trouvé 114 (ce qui n'est pas tout à fait complet). Au prorata des 20h pour 56 € cela nous donne 0,0047€ par résultat (0,0053$).

Voici leurs abonnements :

Plans d'abonnement du site Phantombuster

On appréciera  :
    • La simplicité d'utilisation ✨

On aime moins :
    • La terrible lenteur (est-elle vraiement nécessaire ?)

5. Outscraper :

Vue de l'utilisation de la plateforme Outscraper lors du scraping de Google Maps

   Outscraper est souvent bien classé dans les différents comparatifs d'outils de scraping trouvables sur internet. Avec un prix de 0.003$ / lieu dans leur plus petite formule, nous avons affaire au deuxième scraper le moins cher du marché derrière Openscraper. Néanmoins deux gros bémols apparaissent : 

1. La complétude des données. Étonnamment dans nos différents essais, sur les plus de 120 lieux normalement récupérables, il n’y en a jamais eu plus de 51 dans les résultats. Espérons que ce bug qui apparaissait sur notre url de test sera rapidement corrigé.
2. Le temps de fonctionnement, toujours supérieur à 30 minutes sur nos différents tests

On appréciera  :
    • Le prix

On aime moins :
    • Uniquement la moitié des restaurants récupérés
    • Temps de fonctionnement très lent

Conclusion : Quel scraper Google Maps choisir pour vos projets ?

Site Temps de réponse Pay-as-you-go Prix par lieu Complétude
Openscraper 17,5 s Oui 0,00112 $ 125 / 125 (Complet)
Apify 12,0 s Non 0,00410 $ 109 / 125
Hasdata 29,22 s Non 0,00980 $ 125 / 125 (Complet)
Phantombuster 11 min Non 0,00530 $ 114 / 125
Outscraper 39 min Non 0,00300 $ 51 / 125

Cette investigation au cœur des bouchons lyonnais met en lumière une réalité évidente : toutes les soutions de scraping Google Maps ne se valent pas. Derrière des promesses marketing souvent similaires, on observe en réalité de gros écarts dans les prix, la vitesse d'exécution et la complétude des données.

En fin de compte, si vous cherchez la simplicité absolue sans coder (ce qui est pourtant facile avec les LLM), une plateforme No Code s'envisage, mais au prix fort et avec un temps d'attente prolongé. En revanche, si vous visez la performance maximale, une complétude totale de vos leads et le meilleur tarif du marché, l'intégration d'une solution performante comme OpenScraper.ai ou APIfy s'avère, et de loin, la meilleure recette pour nourrir vos bases de données.

Est-ce légale de scraper Google Maps ?

Conditions d'utilisation vs Cadre légal :

Bien que Google interdise l'accès automatisé dans ses Conditions d'utilisation, aux USA, la jurisprudence (notamment l'arrêt de la Cour d'appel du 9ᵉ circuit dans l'affaire hiQ Labs vs LinkedIn) établit que scraper des données publiques n'est pas illégal en soi dès lors qu'aucun système de sécurité n'est contourné (absence de login ou de paywall).

Protection des données personnelles (RGPD & CCPA) :

La collecte d'informations personnelles (noms d'indépendants, téléphones directs, e-mails) doit respecter le RGPD en Europe et le CCPA aux États-Unis. En France, la CNIL rappelle que les traitements reposant sur l'intérêt légitime doivent respecter les obligations d'information prévues par l'Article 14 du RGPD et garantir un droit d'opposition.

Propriété intellectuelle et bonnes pratiques. La réutilisation directe du contenu généré par les utilisateurs (UGC) pose des risques juridiques et techniques précis :

API Google Places :

Si cela vous tient à coeur de respecter les condition d'utilisatation de google ou d'avoir les données 100% officielles, vous pouvez utiliser l'API officielle Google Places. Cependant, elle s'avère très coûteuse (environ $17 pour 1 000 requêtes).

© Scrapster 2026, mentions légales