Zurück zum Blog
Anleitungen & How-tos2025-08-30·9 Min. Lesezeit

Google Maps-Daten mit JavaScript extrahieren: Vollständiger technischer Leitfaden

Von Ibrahim DemolCEO IBLeadAktualisiert am 26. März 2026

Google Maps enthält über 200 Millionen Geschäftseinträge. Jeder Eintrag enthält Telefonnummern, Websites, Öffnungszeiten, Bewertungen, Adressen und Kundenfeedback. Diese Daten haben einen Wert – für die Lead-Generierung, Marktforschung, Wettbewerbsanalyse oder Reputationsüberwachung.

Sie können auf diese Daten auf drei Arten zugreifen: über die offizielle Google Maps API (komplex, kostspielig), durch Browserautomatisierung (technisch, zeitaufwendig) oder durch spezialisierte Tools (einfach, schnell). Dieser Leitfaden behandelt alle drei Methoden, mit funktionierenden Codebeispielen und ehrlichen Abwägungen.

Am Ende werden Sie verstehen, welcher Ansatz am besten zu Ihrem Anwendungsfall passt.


Warum Google Maps-Daten extrahieren?

Bevor wir in den Code eintauchen, sollten Sie den Geschäftsnutzen verstehen.

Lead-Generierung: Finden Sie 500 Klempner in Chicago mit Telefonnummern und Websites in 10 Minuten statt 2 Stunden manueller Recherche.

Marktforschung: Analysieren Sie die Standorte, Preise (aus Website-Scrapes), Bewertungstrends und Service-Lücken von Wettbewerbern in einer Region.

Reputationsüberwachung: Verfolgen Sie, welche Unternehmen unter 3-Sterne-Bewertungen gefallen sind, identifizieren Sie Bewertungstrends und erkennen Sie gefälschte Bewertungen.

Vertriebsintelligenz: Erstellen Sie gezielte Listen für ABM-Kampagnen – finden Sie alle Unternehmen, die spezifische Tools (WordPress, HubSpot, Shopify) in Ihrem Zielmarkt verwenden.

Expansionsplanung: Identifizieren Sie unterversorgte Gebiete, indem Sie die Wettbewerbsdichte, Kundenbewertungen und Service-Lücken kartieren.

Reales Beispiel: Eine Franchise für Haussanierungsdienste wollte in 5 neuen Städten expandieren. Anstatt Scouts einzustellen, extrahierten sie über 2.000 Wettbewerberlisten pro Stadt (Standort, Bewertungen, Öffnungszeiten, Website), identifizierten Muster in hoch bewerteten Unternehmen und eröffneten in Stadtteilen mit der geringsten Konkurrenz. Zeit: 3 Stunden. Kosten: 0 $ (unter Verwendung kostenloser Tools).


Wie Google Maps-Daten funktionieren

Google Maps funktioniert als öffentliche Datenbank. Wenn Sie nach "Klempnern in meiner Nähe" suchen, fragt Google sein Index und gibt Ergebnisse zurück mit:

  • Firmenname, Adresse, Telefon
  • Website-URL
  • Öffnungszeiten
  • Kundenbewertungen (Text, Bewertung, Datum, Autor)
  • Fotos (Anzahl, Thumbnails)
  • Servicegebiete
  • Verifizierungsstatus
  • Google Place ID (eindeutiger Identifikator)

Diese Daten sind öffentlich sichtbar – jeder kann über die Google Maps-Oberfläche darauf zugreifen. Die Frage ist nicht, ob die Daten existieren; es ist, wie Sie sie in großem Maßstab abrufen.

Es gibt drei Methoden:

  1. Offizielle Google Maps API – Autorisiert, dokumentiert, mit Ratenbeschränkungen
  2. Browserautomatisierung – Ahmt das Benutzerverhalten nach, umgeht Ratenbeschränkungen, technisch komplex
  3. Vorindexierte Datenbanken – Daten sind bereits extrahiert und organisiert, schnellster Ansatz

Methode 1: Google Maps API mit JavaScript

Der offizielle Ansatz. Google bietet mehrere APIs für verschiedene Anwendungsfälle an.

Welche APIs extrahieren Geschäftsdaten?

Places API – Gibt Geschäftseinträge, Bewertungen, Fotos, Öffnungszeiten, Kontaktinformationen zurück. Am häufigsten verwendet.

Geocoding API – Wandelt Adressen in Koordinaten und umgekehrt um.

Directions API – Berechnet Routen, Reisezeit, Entfernung.

Maps JavaScript API – Zeigt Karten und Geschäftsmarker auf Webseiten an.

Um Geschäftsdaten zu extrahieren, benötigen Sie die Places API (insbesondere die Endpunkte "Nearby Search" und "Text Search").

Schritt 1: Richten Sie Ihr Google Cloud-Projekt ein

  1. Gehen Sie zu console.cloud.google.com
  2. Erstellen Sie ein neues Projekt (Dropdown oben links → "Neues Projekt")
  3. Benennen Sie es (z. B. "Datenextraktion Karten")
  4. Warten Sie 30 Sekunden auf die Erstellung
  5. Wählen Sie das Projekt aus
  6. Gehen Sie zu APIs & DiensteBibliothek
  7. Suche nach "Places API" → Klicken Sie darauf → Aktivieren
  8. Gehen Sie zu APIs & DiensteAnmeldeinformationen
  9. Klicken Sie auf Anmeldeinformationen erstellenAPI-Schlüssel
  10. Kopieren Sie Ihren API-Schlüssel (den benötigen Sie für jede Anfrage)

Kosten: Google gewährt €200/Monat kostenlose Credits. Die meisten kleinen Extraktionen passen in diesen Rahmen.

Schritt 2: Verstehen Sie die API-Preise

Sie zahlen pro Anfrage, nicht pro Ergebnis.

API Kosten pro 1.000 Anfragen Hinweise
Places API (Basis) 32 $ Name, Adresse, Telefon, Website, Öffnungszeiten
Places API (Kontakt) 17 $ Das Gleiche + E-Mail, Telefon
Places API (Atmosphäre) 17 $ Das Gleiche + Bewertungen, Bewertungen, Fotos
Geocoding API 5 $ Adresse ↔ Koordinaten
Directions API 5 $ Route, Reisezeit, Entfernung

Beispielkosten: Die Extraktion von 10.000 Unternehmen mit Basisinformationen = 10.000 Anfragen = 320 $. Mit 200 $ kostenlosen Credits zahlen Sie 120 $ aus eigener Tasche.

Wenn Sie 100.000 Unternehmen benötigen, sind das 3.200 $ – teuer für großangelegte Projekte.

Schritt 3: Geocoding-Beispiel (Adresse in Koordinaten umwandeln)

Anwendungsfall: Sie haben eine Liste von Adressen und benötigen Breiten-/Längengrad für die Kartierung.

Code:

const https = require('https');

const address = "1600 Pennsylvania Avenue NW, Washington, DC";
const apiKey = "YOUR_API_KEY_HERE";

// Kodieren Sie die Adresse für die URL (Leerzeichen → %20, Kommas → %2C)
const encodedAddress = encodeURIComponent(address);

const url = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodedAddress}&key=${apiKey}`;

https.get(url, (response) => {
  let data = '';

  response.on('data', (chunk) => {
    data += chunk;
  });

  response.on('end', () => {
    const result = JSON.parse(data);

    if (result.results.length > 0) {
      const location = result.results[0].geometry.location;
      console.log(`Breitengrad: ${location.lat}`);
      console.log(`Längengrad: ${location.lng}`);
      console.log(`Formatierte Adresse: ${result.results[0].formatted_address}`);
    }
  });
}).on('error', (err) => {
  console.error('Fehler:', err);
});

Ausgabe:

Breitengrad: 38.8951
Längengrad: -77.0369
Formatierte Adresse: 1600 Pennsylvania Avenue NW, Washington, DC 20500, USA

Was passiert: Sie senden die Adresse an die Server von Google. Diese vergleichen sie mit ihrer Datenbank, geben die nächstgelegenen Koordinaten und die formatierte Version zurück. Einfache Eins-zu-eins-Abgleichung.

Schritt 4: Nearby Search-Beispiel (Unternehmen nach Kategorie + Standort finden)

Anwendungsfall: Finden Sie alle Restaurants innerhalb von 1 km von einem bestimmten Punkt.

Code:

const https = require('https');

const apiKey = "YOUR_API_KEY_HERE";
const latitude = 40.7128;  // New York
const longitude = -74.0060;
const radius = 1000;  // 1 km
const keyword = "restaurant";

const url = `https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${latitude},${longitude}&radius=${radius}&keyword=${keyword}&key=${apiKey}`;

https.get(url, (response) => {
  let data = '';

  response.on('data', (chunk) => {
    data += chunk;
  });

  response.on('end', () => {
    const result = JSON.parse(data);

    console.log(`Gefundene ${result.results.length} Restaurants:`);

    result.results.forEach((place) => {
      console.log(`
Name: ${place.name}`);
      console.log(`Adresse: ${place.vicinity}`);
      console.log(`Bewertung: ${place.rating} (${place.user_ratings_total} Bewertungen)`);
      console.log(`Place ID: ${place.place_id}`);
    });

    // Überprüfen Sie, ob es weitere Ergebnisse gibt
    if (result.next_page_token) {
      console.log(`
Weitere Ergebnisse verfügbar. Verwenden Sie next_page_token: ${result.next_page_token}`);
    }
  });
}).on('error', (err) => {
  console.error('Fehler:', err);
});

Ausgabe:

Gefundene 20 Restaurants:

Name: Balthazar
Adresse: 80 Spring Street, New York
Bewertung: 4.5 (1.203 Bewertungen)
Place ID: ChIJIQBpAG2fwoAR_L12E10P3MQ

Name: Eleven Madison Park
Adresse: 11 Madison Avenue, New York
Bewertung: 4.7 (892 Bewertungen)
Place ID: ChIJ0ZHZd6eewokRkurJVcf33V4

...

Limitierungen dieses Ansatzes:

  • Gibt maximal 20 Ergebnisse pro Anfrage zurück
  • Um alle Ergebnisse zu erhalten, verwenden Sie next_page_token (erfordert mehrere API-Aufrufe = höhere Kosten)
  • Keine E-Mail-Extraktion (muss die Website separat besuchen)
  • Kein Bewertungstext (nur Bewertungsanzahl)
  • Ratenlimits: maximal 50 Anfragen/Sekunde
  • Keine Filterung nach Bewertungsnote, Verifizierungsstatus oder Anzahl der Fotos

Methode 2: Browserautomatisierung (Selenium, Puppeteer)

Wenn die Google API zu teuer oder eingeschränkt ist, können Sie einen Browser automatisieren, um das Benutzerverhalten nachzuahmen.

Wie es funktioniert: Ein Skript öffnet Chrome/Firefox, sucht in Google Maps nach "Klempnern in Chicago", klickt durch die Ergebnisse, extrahiert Daten aus dem DOM (HTML der Seite) und speichert sie.

Warum Browserautomatisierung verwenden?

✅ Keine API-Kosten (nur Ihre Serverkosten)
✅ Zugriff auf alle sichtbaren Daten (Bewertungen, Fotos, Website-Inhalte)
✅ Keine Ratenlimits (technisch – aber Google kann erkennen und blockieren)
❌ Langsam (benötigt 5-10 Sekunden pro Unternehmen im Vergleich zu 0,1 Sekunden über die API)
❌ Komplexe Einrichtung (erfordert Chrome/Firefox-Installation)
❌ Fragil (Google ändert das Seitenlayout → Skript bricht)
❌ Riskant (Google blockiert aktiv Scraper)

Einfaches Puppeteer-Beispiel

Einrichtung:

npm install puppeteer

Code:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Navigieren Sie zur Google Maps-Suche
  await page.goto('https://www.google.com/maps/search/plumbers+in+chicago');

  // Warten Sie, bis die Ergebnisse geladen sind
  await page.waitForSelector('[data-item-id]');

  // Extrahieren Sie Geschäftseinträge
  const businesses = await page.evaluate(() => {
    const items = [];
    document.querySelectorAll('[data-item-id]').forEach((element) => {
      items.push({
        name: element.querySelector('[data-item-id] .fontHeadlineSmall')?.textContent || 'N/A',
        rating: element.querySelector('.icon-star-fill')?.textContent || 'N/A',
        address: element.querySelector('[data-item-id] .fontBodySmall')?.textContent || 'N/A',
      });
    });
    return items;
  });

  console.log(businesses);

  await browser.close();
})();

Warum dies riskant ist: Google erkennt Muster der Browserautomatisierung (schnelle Klicks, keine Mausbewegungen, fehlende Header). Sie blockieren die IP oder zeigen CAPTCHAs an. Sie benötigen Proxys, Verzögerungen und Header-Spoofing – komplex und unzuverlässig.

Urteil: Browserautomatisierung funktioniert für kleine Extraktionen (< 100 Unternehmen), versagt jedoch im großen Maßstab.


Methode 3: Vorindexierte Geschäftsdatenbanken

Der schnellste Ansatz: Jemand hat die Daten bereits extrahiert und organisiert.

Wie es funktioniert: Ein Unternehmen (wie IBLead) betreibt 24/7 Scraper, extrahiert monatlich Google Maps-Einträge, bereinigt die Daten und verkauft den Zugriff über eine API oder Weboberfläche.

Vorteile:

  • Keine Programmierung erforderlich
  • Sofortige Ergebnisse (Daten bereits extrahiert)
  • Niedrigere Kosten als die Google API (Mengenpreise)
  • Enthält angereicherte Daten (E-Mails, erkannte Technologien, Bewertungstexte)
  • Unterstützt komplexe Filter (Bewertung, Anzahl der Bewertungen, Verifizierungsstatus usw.)

Abwägungen:

  • Daten sind 1-30 Tage alt (nicht in Echtzeit)
  • Sie sind auf die Genauigkeit des Anbieters angewiesen
  • Abonnementmodell (nicht nach Nutzung bezahlen)

Beispiel: IBLead extrahiert über 5 Millionen Google Maps-Einträge in mehr als 15 Ländern, die monatlich aktualisiert werden. Sie suchen nach Stadt/Kategorie/Filtern und exportieren in 2 Klicks nach CSV.


Kurze Antwort: Es hängt davon ab, wie Sie es tun.

Verwendung der offiziellen Google Maps API

Legal – Sie verwenden den autorisierten Dienst von Google und befolgen deren Nutzungsbedingungen. Sie zahlen für die Nutzung. Keine Probleme.

Browserautomatisierung / Direktes Scraping

⚠️ Grauzone – Technisch möglich, aber:

  1. Verstößt gegen die Nutzungsbedingungen von Google – Abschnitt 10.3: "Sie werden nicht... versuchen, auf Google Maps zuzugreifen oder zu suchen, indem Sie andere als die öffentlich unterstützten Schnittstellen von Google verwenden."

  2. Verstößt gegen das Computer Fraud and Abuse Act (CFAA) in den USA – Unbefugter Zugriff auf Computersysteme. Gerichte haben entschieden, dass Scraping dies verletzen kann.

  3. Urheberrechtsbedenken – Firmennamen, Adressen und Bewertungen sind urheberrechtlich geschützt. Sie ohne Erlaubnis zu reproduzieren, ist eine Urheberrechtsverletzung.

  4. Praktische Durchsetzung – Google blockiert aktiv Scraper. Ihre IP wird gesperrt. Sie benötigen Proxys (fügt Komplexität und Kosten hinzu).

Realer Fall: Im Jahr 2020 wurde ein Unternehmen wegen des Scrapens von LinkedIn-Profilen verklagt. Das Gericht entschied, dass selbst öffentlich sichtbare Daten geschützt sind, wenn Sie gegen die Nutzungsbedingungen verstoßen, um darauf zuzugreifen.

Best Practice

Verwenden Sie die offizielle Google Maps API oder einen lizenzierten Datenanbieter (IBLead, IBLead usw.). Sie bleiben legal, vermeiden IP-Sperren und erhalten zuverlässige Daten.

Wenn die Kosten ein Anliegen sind, vergleichen Sie:

  • Google API: 320 $ für 10.000 Unternehmen
  • IBLead: 44 €/Monat für 10.000 Credits (1 Unternehmen = 1 Credit) = 44 € für 10.000 Unternehmen
  • DIY-Browserautomatisierung: 0 $ im Voraus, aber 500 $+ für Proxys/Infrastruktur, plus das Risiko rechtlicher Schritte

Der lizenzierte Ansatz ist günstiger und sicherer.


Praktischer Workflow: Von der Suche zum CSV-Export

Lassen Sie uns ein reales Szenario durchgehen: Sie müssen 500 Elektriker in Los Angeles mit Telefonnummern und Websites finden.

Option A: Google Maps API

Schritt 1: Geocodieren Sie "Los Angeles", um die Koordinaten zu erhalten.

// Holen Sie sich die LA-Koordinaten: 34.0522, -118.2437

Schritt 2: Machen Sie Nearby-Search-Anfragen für "Elektriker" innerhalb eines 15 km Radius.

// Erste Anfrage: gibt 20 Ergebnisse + next_page_token zurück
// Zweite Anfrage: verwenden Sie next_page_token, um die nächsten 20 zu erhalten
// ... wiederholen Sie dies 25 Mal, um 500 Ergebnisse zu erhalten

Schritt 3: Für jedes Unternehmen eine separate "Place Details"-Anfrage stellen, um Telefonnummer und Website zu erhalten.

// Jedes Unternehmen benötigt einen separaten API-Aufruf
// 500 Unternehmen = 500 zusätzliche Anfragen

Gesamtanzahl der Anfragen: 25 (Nearby Search) + 500 (Place Details) = 525 Anfragen
Gesamtkosten: (525 / 1.000) × 32 $ = 16,80 $
Zeit zum Programmieren: 4-6 Stunden (wenn Sie JavaScript kennen)
Zeit zur Ausführung: 10-15 Minuten

Option B: IBLead

Schritt 1: Gehen Sie zu app.iblead.com
Schritt 2: Suchen Sie nach "Elektrikern" in "Los Angeles"
Schritt 3: Wenden Sie Filter an (Bewertung > 4, verifizierte Unternehmen usw.)
Schritt 4: Exportieren Sie nach CSV
Schritt 5: Importieren Sie in CRM

Gesamtkosten: 44 €/Monat (deckt 10.000 Credits; Sie verwenden 500)
Zeit zum Programmieren: 0 (keine Programmierung)
Zeit zur Ausführung: 2 Minuten

Bonusfunktionen in IBLead:
- E-Mail-Adressen (extrahiert von Websites)
- 160+ Technologieerkennungen (WordPress, Shopify, HubSpot usw.)
- Google-Bewertungstexte und -sentiment
- SIRET/SIREN-Daten (nur Frankreich)
- Filterung nach Bewertungsnote, Anzahl der Bewertungen, Fotos, Verifizierungsstatus


Extrahieren von Google Maps-Bewertungen (Fortgeschrittener Anwendungsfall)

Bewertungen sind wertvoll für die Reputationsüberwachung, Marktforschung und Wettbewerbsanalyse.

Die Herausforderung

Die Google Maps API gibt keinen Bewertungstext zurück. Sie erhalten die Anzahl der Bewertungen und die durchschnittliche Bewertung, aber keine einzelnen Bewertungen.

API-Antwort:

{
  "name": "Joe's Diner",
  "rating": 4.3,
  "user_ratings_total": 287
}

Sie erhalten nicht:
- Einzelne Bewertungstexte
- Name des Bewerters
- Bewertungsdatum
- Sternebewertung pro Bewertung

Browserautomatisierungsansatz

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Navigieren Sie zu einem Unternehmen auf Google Maps
  await page.goto('https://www.google.com/maps/place/Joes+Diner');

  // Scrollen Sie durch den Bewertungsbereich
  const reviews = await page.evaluate(() => {
    const reviewList = [];
    document.querySelectorAll('[data-review-id]').forEach((review) => {
      reviewList.push({
        author: review.querySelector('.EWp0qd')?.textContent || 'Anonym',
        rating: review.querySelector('[aria-label*="star"]')?.getAttribute('aria-label') || 'N/A',
        text: review.querySelector('.wiI7pd')?.textContent || '',
        date: review.querySelector('.rsqaWe')?.textContent || 'N/A',
      });
    });
    return reviewList;
  });

  console.log(reviews);
  await browser.close();
})();

Ausgabe:

[
  {
    "author": "Sarah M.",
    "rating": "5 Sterne",
    "text": "Das beste Frühstück in der Stadt! Sehr zu empfehlen die Pfannkuchen.",
    "date": "vor 2 Wochen"
  },
  {
    "author": "John D.",
    "rating": "3 Sterne",
    "text": "Gutes Essen, aber langsamer Service.",
    "date": "vor 1 Monat"
  }
]

Warum das wichtig ist:

  • Reputationsüberwachung: Automatisches Markieren von Unternehmen mit neuen 1-2 Sterne-Bewertungen
  • Wettbewerbsanalyse: Extrahieren Sie Wettbewerbsbewertungen, um zu verstehen, was Kunden schätzen
  • Sentimentanalyse: Verwenden Sie NLP, um Bewertungen nach Themen (Essen, Service, Preis usw.) zu kategorisieren

Der Haken: Google blockiert dies im großen Maßstab. Nach 50-100 Bewertungen stoßen Sie auf CAPTCHAs oder IP-Sperren.

Der Ansatz von IBLead (exklusive Funktion)

IBLead scrapt Bewertungstexte, Autoren, Bewertungen und Daten für jedes Unternehmen. Sie können filtern nach:
- Mindest-/Höchstbewertung
- Datumsbereich (letzte 30 Tage, letztes Jahr usw.)
- Schlüsselwort im Bewertungstext

Anwendungsfall: Finden Sie alle Unternehmen mit < 3 durchschnittlicher Bewertung in Ihrem Markt → personalisieren Sie die Ansprache, um ihre niedrigen Bewertungen zu erwähnen → bieten Sie Dienstleistungen zur Reputationsreparatur an.


Häufige Herausforderungen und Lösungen

Herausforderung 1: Ratenbegrenzung

Problem: Die Google Maps API begrenzt Sie auf 50 Anfragen/Sekunde. Wenn Sie mehr machen, schlagen die Anfragen fehl.

Lösung: Fügen Sie Verzögerungen zwischen den Anfragen hinzu.

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

for (let i = 0; i < 100; i++) {
  // API-Anfrage machen
  await makeRequest();

  // Warten Sie 200 ms vor der nächsten Anfrage
  await delay(200);
}

Herausforderung 2: Fehlende Daten

Problem: Einige Unternehmen haben keine Telefonnummern oder Websites, die auf Google Maps aufgeführt sind.

Bereit loszulegen?

Zugriff auf jedes Google Maps Unternehmen, angereichert mit E-Mails und rechtlichen Daten.

IBLead kostenlos testen