Passer au contenu

Comment récupérer les données de Google Maps : le guide non officiel de l'API

Avec plus de 200 millions d'entreprises répertoriées et plus d'un milliard d'utilisateurs mensuels, Google Maps est devenu une source indispensable de données de localisation. Ce guide vous apprendra comment extraire de la valeur de Google Maps à grande échelle à l'aide du web scraping.

Introduction

Google Maps fournit une multitude de données : noms d'entreprises, adresses, numéros de téléphone, heures d'ouverture, avis clients, images, mesures de popularité en direct et bien plus encore. Ces données peuvent fournir des informations concurrentielles clés pour les études de marché, la génération de leads, la publicité ciblée et les services géolocalisés.

Bien que Google fournisse une API Maps, elle est limitée à 100,000 7 requêtes gratuites par mois, les requêtes supplémentaires coûtant 1000 $ pour XNUMX XNUMX. Pour les projets de scraping plus importants, cela peut devenir prohibitif. Le Web scraping offre une alternative flexible et peu coûteuse pour accéder aux données Google Maps à grande échelle.

Le scraping de données publiques en ligne est généralement considéré comme légal en vertu de la loi américaine telle que la Computer Fraud and Abuse Act. Cependant, veillez à respecter les conditions d'utilisation de Google qui interdisent le scraping excessif, perturbateur ou contournant leurs systèmes. Un scraping trop agressif peut bloquer votre adresse IP.

Collectez uniquement les données correspondant à vos besoins et ne republiez pas le contenu récupéré textuellement. Google Maps contient des informations personnelles telles que des e-mails et des numéros de téléphone qui doivent être anonymisées ou pseudonymisées avant stockage et analyse.

Le respect des principes éthiques permet de garantir que votre web scraping apporte de la valeur à la société. Le code d'éthique d'ACM est un excellent guide pour des pratiques informatiques responsables.

La valeur des données Google Maps

Voici quelques statistiques clés qui mettent en valeur les grandes quantités de données disponibles sur Google Maps :

  • Plus de 200 millions d'entreprises répertoriées sur Google Maps dans le monde en 2021
  • Plus d'un milliard d'utilisateurs actifs mensuels de Google Maps dans le monde
  • Des millions d'avis, d'images, d'heures d'ouverture et d'autres points de données sur les entreprises
  • Mesures de popularité en direct pour plus de 10 millions de lieux dans le monde
  • Archives historiques d'images Street View remontant à plus de 15 ans

L’exploitation de ces données à grande échelle peut fournir une puissante veille concurrentielle pour les décisions fondées sur les données.

Surmonter les défis du scraping

Google utilise des systèmes avancés de détection de robots pour empêcher les abus de ses services. Voici quelques techniques pour éviter de vous bloquer lors du grattage :

  • Automatisation du navigateur Selenium – Imite les actions réelles de l’utilisateur comme le défilement et le clic en automatisant un vrai navigateur comme Chrome. Plus résistant à la détection des robots qu’aux requêtes.
  • Proxies – Faites pivoter différentes adresses IP pour distribuer les requêtes et masquer l’activité de scraping. Les services proxy comme BrightData proposent des milliers d'adresses IP.
  • Résolution de captcha – Google utilise reCAPTCHA v2 sur Maps, ce qui nécessite de résoudre manuellement les défis visuels. Des outils comme Anti-Captcha peuvent aider à automatiser cela.
  • Nettoyer les données – Les données récupérées contiennent des incohérences et des doublons qui doivent être nettoyés avant analyse. Prévoyez du temps pour la gestion des données.

Avec les bons outils et techniques, ces défis peuvent être surmontés pour accéder aux données Google Maps à grande échelle.

Gratter Google Maps avec Selenium

Voici un guide étape par étape pour supprimer Google Maps à l'aide de Selenium et Python :

Installer les packages requis

pip install selenium pandas numpy regex pymongo

Pilote d'installation

from selenium import webdriver

driver = webdriver.Chrome()

Configurez les proxys et les options selon vos besoins.

Rechercher des lieux

driver.get("https://www.google.com/maps/search/restaurants+in+Los+Angeles")

extraire des données

Utilisez des sélecteurs d'éléments pour extraire les champs clés :

places = driver.find_elements(By.CLASS_NAME, "section-result")

names = [place.find_element(By.CLASS_NAME, "section-result-title").text for place in places]

addresses = [place.find_element(By.CLASS_NAME, "section-result-location").text for place in places]

place_urls = [place.find_element(By.CSS_SELECTOR, "a.section-result-action-icon").get_attribute("href") for place in places]

Cliquez à chaque endroit pour récupérer des données supplémentaires telles que des avis :

for url in place_urls:
    driver.get(url)

    reviews = driver.find_elements(By.CLASS_NAME, "section-review-text")

Rotation continue des proxys

Pour effectuer un scraping à grande échelle, les proxys doivent être cyclés pour éviter toute détection :

from brightdata.brightdata_service import BrightDataService

resolver = BrightDataService.create_proxy_resolver() 

while True:
    driver.quit()
    driver = webdriver.Chrome(resolver=resolver)
    driver.get(next_url)

Cela permet de gratter des milliers d’emplacements de manière fiable.

Google fournit des données de popularité en direct pour les lieux via un point de terminaison API. Un exemple de réponse :

"popularTimes": [
  {
   "day": 0,
   "data": [  
     {"hour": 8, "percent": 24},
     {"hour": 9, "percent": 100},  
     {"hour": 10, "percent": 88},
   ]
  }
] 

Le champ de pourcentage contient la mesure d’activité en direct allant de 0 à 100. Voici comment l'extraire en Python :

import requests
import pandas as pd

api_url = place_url + "/data/details/json" 

times_data = requests.get(api_url).json()["popularTimes"] 

df = pd.DataFrame(times_data)[["day","hour","percent"]]

La visualisation de ces données peut révéler des tendances hebdomadaires.

Gratter des images

Les pages Google Adresses contiennent des galeries d'images qui peuvent être récupérées :

images = driver.find_elements(By.CLASS_NAME, "section-image")

image_urls = [img.get_attribute("src") for img in images]

Les données de localisation telles que la latitude et la longitude sont codées dans les URL.

Stockage des données à grande échelle

Pour les gros scrapers, MongoDB est un excellent choix de stockage par rapport aux feuilles CSV ou Excel. Quelques bonnes pratiques :

  • Utilisez le schéma de document NoSQL pour permettre la flexibilité à mesure que les champs changent
  • Créez des index sur les champs sur lesquels vous interrogez, comme les noms d'entreprise ou les emplacements.
  • Encodez des géodonnées sous forme de points au lieu d'adresses pour la recherche géospatiale
  • Planifiez des sauvegardes régulières à mesure que le scraping accumule des données au fil du temps

Voici un exemple de code d'insertion :

from pymongo import MongoClient

client = MongoClient()
db = client["google_maps"]
places = db["places"] 

post = {
    "name": name,
    "url" : url,
    "address": address,
    "location": {
        "type": "Point",  
        "coordinates": [lat, lng]
    },
    "images" : image_urls
}

places.insert_one(post)

Analyse et visualisation

Une fois les données récupérées, la vraie valeur vient de l’analyse et de la visualisation. Voici quelques exemples:

Type d'analyseDescriptionBibliothèques
Analyse des sentimentsIdentifier les thèmes positifs et négatifs dans les avisNLTK, TextBlob
Modélisation de sujetsDécouvrez les sujets tendances à partir des avis utilisant LDAGensim, pyLDAvis
Reconnaissance d'imageExtraire le texte des menus et autres images avec OCROpenCV, pytesseract
Analyse géospatialeVisualisez les données superposées sur des cartes pour analyseFolium, Plotly Express

L'analyse avancée fournit une veille concurrentielle pour guider les décisions commerciales.

Cas d'usage

Les données Google Maps récupérées permettent de puissants services basés sur la localisation :

  • Étude de marché – Comparez la popularité et le sentiment des concurrents sur tous les sites
  • Génération de leads – Créez des listes de courrier électronique et téléphoniques ciblées pour la sensibilisation
  • Sélection du site – Optimiser les nouveaux emplacements en fonction de la démographie et du trafic piétonnier
  • Numérique – Créer des campagnes publicitaires hyperlocales basées sur les mouvements des clients
  • Prévision de la demande – Prédire le trafic en magasin pour optimiser le personnel pour les week-ends
  • logistique – Tracez des itinéraires optimaux pour les livraisons en fonction des données de trafic en temps réel

Ce ne sont là que quelques exemples de la façon dont les données Google Maps récupérées sur le Web peuvent stimuler l’innovation et la croissance.

Conclusion

Alors que Google Maps fournit une API gratuite limitée, le web scraping offre un accès complet aux données cartographiques à grande échelle. Avec une utilisation responsable, ces techniques permettent aux individus et aux organisations d’exploiter la puissance des données géolocalisées pour obtenir un avantage concurrentiel.

L'information mondiale cartographiée est disponible. Maintenant, va le chercher !

Prendre part à la conversation

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *