Meteen naar de inhoud

Gegevens uit Google Maps schrapen: de onofficiële API-gids

Met meer dan 200 miljoen vermelde bedrijven en meer dan 1 miljard maandelijkse gebruikers is Google Maps een onmisbare bron van locatiegegevens geworden. In deze handleiding leert u hoe u op grote schaal waarde uit Google Maps kunt halen met behulp van webscraping.

Introductie

Google Maps biedt een schat aan gegevens: bedrijfsnamen, adressen, telefoonnummers, openingstijden, klantrecensies, afbeeldingen, live populariteitsstatistieken en meer. Deze gegevens kunnen belangrijke concurrentie-inzichten opleveren voor marktonderzoek, leadgeneratie, gerichte reclame en locatiegebaseerde diensten.

Hoewel Google een Maps API biedt, is deze beperkt tot 100,000 gratis verzoeken per maand, waarbij extra verzoeken $ 7 per 1000 kosten. Voor grotere scrapingprojecten kan dit onbetaalbaar worden. Webscraping biedt een flexibel, goedkoop alternatief voor toegang tot Google Maps-gegevens op grote schaal.

Het webscrapen van openbare onlinegegevens wordt over het algemeen als legaal beschouwd volgens de Amerikaanse wetgeving, zoals de Computer Fraud and Abuse Act. Zorg er echter voor dat u zich houdt aan de Servicevoorwaarden van Google, die scraping verbieden die buitensporig of storend is of hun systemen omzeilt. Als u te agressief schrapt, kan uw IP-adres worden geblokkeerd.

Verzamel alleen gegevens die relevant zijn voor uw behoeften en publiceer de geschraapte inhoud niet woordelijk opnieuw. Google Maps bevat persoonlijke informatie zoals e-mails en telefoonnummers die vóór opslag en analyse moeten worden geanonimiseerd of gepseudonimiseerd.

Als u zich aan ethische principes houdt, zorgt u ervoor dat uw webscraping waarde voor de samenleving oplevert. De ACM Code of Ethics is een uitstekende gids voor verantwoorde computerpraktijken.

De waarde van Google Maps-gegevens

Hier zijn enkele belangrijke statistieken die de enorme hoeveelheden gegevens weergeven die beschikbaar zijn op Google Maps:

  • Sinds 200 zijn er wereldwijd meer dan 2021 miljoen bedrijven vermeld op Google Maps
  • Wereldwijd ruim 1 miljard actieve Google Maps-gebruikers per maand
  • Miljoenen recensies, afbeeldingen, openingstijden en andere datapunten over bedrijven
  • Live populariteitsstatistieken voor meer dan 10 miljoen plaatsen wereldwijd
  • Historische archieven met Street View-afbeeldingen die meer dan 15 jaar oud zijn

Het op grote schaal ontsluiten van deze data kan krachtige concurrentie-informatie opleveren voor datagestuurde beslissingen.

Schrapuitdagingen overwinnen

Google maakt gebruik van geavanceerde botdetectiesystemen om misbruik van hun services te voorkomen. Hier zijn enkele technieken om te voorkomen dat u tijdens het schrapen geblokkeerd raakt:

  • Selenium-browserautomatisering – Bootst echte gebruikersacties na, zoals scrollen en klikken, door een echte browser zoals Chrome te automatiseren. Beter bestand tegen botdetectie dan verzoeken.
  • volmachten – Roteer verschillende IP-adressen om verzoeken te distribueren en scraping-activiteiten te maskeren. Proxydiensten zoals BrightData bieden duizenden IP's.
  • Captcha oplossen – Google gebruikt reCAPTCHA v2 op Maps, waardoor visuele uitdagingen handmatig moeten worden opgelost. Tools als Anti-Captcha kunnen dit helpen automatiseren.
  • Schone gegevens – Geschrapte gegevens bevatten inconsistenties en duplicaten die vóór analyse moeten worden opgeschoond. Budgettijd voor gegevensruzie.

Met de juiste tools en technieken kunnen deze uitdagingen worden overwonnen om op grote schaal toegang te krijgen tot Google Maps-gegevens.

Google Maps schrapen met Selenium

Hier is een stapsgewijze handleiding voor het schrapen van Google Maps met Selenium en Python:

Vereiste pakketten installeren

pip install selenium pandas numpy regex pymongo

Installatiestuurprogramma

from selenium import webdriver

driver = webdriver.Chrome()

Configureer indien nodig proxy's en opties.

Zoek naar plaatsen

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

extract gegevens

Gebruik elementkiezers om sleutelvelden te extraheren:

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]

Klik op elke plaats om aanvullende gegevens zoals recensies te verzamelen:

for url in place_urls:
    driver.get(url)

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

Proxy's voortdurend roteren

Om op grote schaal te kunnen schaven, moeten proxy's worden gefietst om detectie te voorkomen:

from brightdata.brightdata_service import BrightDataService

resolver = BrightDataService.create_proxy_resolver() 

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

Hierdoor kunt u duizenden locaties betrouwbaar schrapen.

Google biedt live populariteitsgegevens voor plaatsen via een API-eindpunt. Een voorbeeldantwoord:

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

Het percentageveld bevat de live-bezetheidsstatistiek, variërend van 0-100. Hier ziet u hoe u het in Python kunt extraheren:

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"]]

Door deze gegevens te visualiseren kunnen wekelijkse patronen zichtbaar worden.

Afbeeldingen schrapen

Plaatspagina's bevatten afbeeldingsgalerijen die kunnen worden geschraapt:

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

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

Locatiegegevens zoals breedte- en lengtegraad worden gecodeerd in de URL's.

Gegevens op schaal opslaan

Voor grote schrapers is MongoDB een uitstekende keuze voor opslag in vergelijking met CSV's of Excel-bladen. Enkele best practices:

  • Gebruik het NoSQL-documentschema om flexibiliteit mogelijk te maken als velden veranderen
  • Maak indexen voor velden waarop u zoekopdrachten uitvoert, zoals bedrijfsnamen of locaties
  • Codeer geodata zoals punten in plaats van adressen voor georuimtelijk zoeken
  • Plan regelmatig back-ups, aangezien scrapen in de loop van de tijd gegevens opbouwt

Hier is een voorbeeld van een invoegcode:

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 en visualisatie

Zodra de gegevens zijn verzameld, komt de echte waarde voort uit analyse en visualisatie. Hier zijn enkele voorbeelden:

AnalysetypeOmschrijvingbibliotheken
Sentiment analyseIdentificeer positieve en negatieve thema’s in recensiesNLTK, TextBlob
Modellering van onderwerpenOntdek trending topics uit recensies met behulp van LDAGensim, pyLDAvis
BeeldherkenningExtraheer tekst uit menu's en andere afbeeldingen met OCROpenCV, pytesseract
Georuimtelijke analyseVisualiseer gegevens gelaagd op kaarten voor analyseFolium, PlotlyExpress

Geavanceerde analyse biedt concurrentie-informatie om zakelijke beslissingen te begeleiden.

Cases

De verzamelde Google Maps-gegevens maken krachtige locatiegebaseerde services mogelijk:

  • Marktonderzoek – Vergelijk de populariteit en het sentiment van concurrenten op verschillende locaties
  • lead Generation – Bouw gerichte e-mail- en telefoonlijsten voor outreach
  • Site selectie – Optimaliseer nieuwe locaties op basis van demografie en voetgangersverkeer
  • Advertising – Creëer hyperlokale advertentiecampagnes op basis van klantbewegingen
  • Eis voorspelling – Voorspel winkelverkeer om de personeelsbezetting voor het weekend te optimaliseren
  • Logistiek – Optimale routes voor leveringen uitstippelen op basis van realtime verkeersgegevens

Dit zijn slechts enkele voorbeelden van hoe op internet verzamelde Google Maps-gegevens innovatie en groei kunnen stimuleren.

Conclusie

Hoewel Google Maps een beperkte gratis API biedt, biedt webscraping volledige toegang tot kaartgegevens op schaal. Bij verantwoord gebruik stellen deze technieken individuen en organisaties in staat de kracht van locatiegebaseerde gegevens te benutten voor concurrentievoordeel.

De informatie van de wereld in kaart gebracht – het is daarbuiten. Ga het nu pakken!

Doe mee aan het gesprek

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *