Wie man Glassdoor-Gehälter und -Bewertungen für den Vergleich von Vergütungen scrapt

Glassdoor verbirgt seine Daten hinter einem Login-Overlay - aber der Inhalt befindet sich bereits im JSON der Seite, unter dem Modal. So finden Sie eine Arbeitgeber-ID, lesen dieses JSON und vergleichen Vergütungen, ohne die Sperre auszulösen.

Glassdoor ist der Referenzdatensatz für Vergütungs- und Arbeitgeber-Reputationsforschung - Gehälter, Bewertungen und Rezensionen von Millionen von Unternehmen. Es wirft Ihnen auch ein Login-Overlay ins Gesicht und begrenzt die Rate aggressiv. Der Trick, den die meisten übersehen: Dieses Overlay ist kosmetisch. Die Unternehmensdaten sind bereits im JSON der Seite geladen, unterhalb des Modals. Diese Anleitung zeigt, wie man Glassdoor-Gehälter und -Bewertungen für den Vergleich von Vergütungen scrapt - eine Arbeitgeber-ID auflöst, das JSON liest und Anfragen so taktet, dass man nicht gegen die 403-Wand läuft.

Schritt 1: Das Unternehmen auf eine Arbeitgeber-ID auflösen

Jede Glassdoor-Seite basiert auf einer numerischen Arbeitgeber-ID, nicht auf einem Namen. Es gibt einen internen Typeahead-Endpunkt, der einen Firmennamen seiner ID zuordnet - derselbe, der die Suchbox antreibt. Nutzen Sie ihn, und Sie erhalten den kanonischen Namen plus die ID, die Sie benötigen, um jede andere URL zu erstellen:

import requests

proxy = "http://USER:PASS@gate.quantumproxies.io:8000"
proxies = {"http": proxy, "https": proxy}

def find_employer_id(name):
    url = "https://www.glassdoor.com/api-web/employer/find.htm"
    params = {"autocomplete": "true", "maxEmployersForAutocomplete": 10, "term": name}
    r = requests.get(url, params=params, proxies=proxies, timeout=15,
                     headers={"User-Agent": "Mozilla/5.0"})
    return r.json()  # -> [{"id": 7853, "shortName": "eBay", ...}, ...]

print(find_employer_id("eBay"))

Mit der ID können Sie die Übersicht-URL (/Overview/Working-at-NAME-EI_IE{id}.htm) und die Bewertungs-URL (/Reviews/NAME-Reviews-E{id}.htm) erstellen. Noch kein Browser erforderlich.

Diagramm einer Glassdoor-Scraping-Pipeline vom Typeahead-Arbeitgeber-ID-Lookup bis zum Lesen des Next.js- und Apollo-JSON
Lösen Sie zuerst die ID auf; jede Glassdoor-URL und JSON-Nutzlast ist an diese Nummer gebunden.

Schritt 2: Lesen Sie das JSON, nicht das HTML

Glassdoor ist eine Next.js-App, daher wird jede Seite als JSON-Blob geliefert - im __NEXT_DATA__-Skript-Tag und einem Apollo GraphQL-Cache. Parsen Sie das anstelle des gerenderten DOM: Es enthält Bewertungen, Gehaltszahlen, Bewertungstexte sowie Firmografien wie Umsatz, Hauptsitz, Unternehmensgröße, Gründungsjahr und Branche. Es ist weitaus stabiler als CSS-Selektoren, die Glassdoor hinter data-test-Attributen rotiert.

import json, re

def scrape_overview(name, employer_id):
    url = f"https://www.glassdoor.com/Overview/Working-at-{name}-EI_IE{employer_id}.htm"
    r = requests.get(url, proxies=proxies, timeout=20,
                     headers={"User-Agent": "Mozilla/5.0"})
    m = re.search(r'<script id="__NEXT_DATA__"[^>]*>(.*?)</script>', r.text, re.S)
    data = json.loads(m.group(1))
    # firmographics + ratings live inside the Apollo cache under props
    return data["props"]["pageProps"]

data = scrape_overview("eBay", 7853)

Das Login-Modal, das Sie in einem Browser sehen, ist ein festes Overlay (seine Container-ID ist HardsellOverlay), das über die Seite gezeichnet wird. Da der zugrunde liegende Inhalt bereits im DOM und im JSON vorhanden ist, sieht eine HTTP-Anfrage, die das Rohmarkup liest, das Modal überhaupt nicht. Wenn Sie mit einem Browser rendern, können Sie das Overlay mit einer einzeiligen CSS-Injektion (display:none) entfernen, anstatt zu versuchen, sich einzuloggen.

Bewertungen paginieren und Gehaltsverteilungen lesen

Bewertungen und Gehälter sind paginiert, und der Paginierungs-Cursor befindet sich im selben JSON, das Sie bereits geparst haben - nicht in einem fragilen "Weiter"-Button, den Sie anklicken müssen. Lesen Sie die Daten der aktuellen Seite, finden Sie den Cursor oder die Seitennummer in der Nutzlast und fordern Sie direkt die URL der nächsten Seite an. Deshalb ist das Parsen des JSON dem Steuern eines Browsers überlegen: Sie durchlaufen Seiten mit einfachen HTTP-Anfragen, eine pro Seite, in dem Tempo, das Sie wählen. Ziehen Sie den Bewertungstext, die Sternebewertung, den Jobtitel, den Standort und das Datum für jeden Eintrag heraus, und Sie haben ein strukturiertes Bewertungskorpus, über das Sie eine Sentiment-Analyse durchführen können - dasselbe Rohmaterial, das in unserem Bewertungs-Scraping-Leitfaden behandelt wird.

Gehälter sind das höherwertige Ziel, und der ehrliche Rat ist, sie als Verteilungen zu behandeln, nicht als Punktwerte. Eine einzelne gescrapte Zahl ist verrauscht; das nützliche Signal ist die Spanne und der Median über viele Einreichungen für eine Rolle an einem bestimmten Standort. Das JSON zeigt die Zahlen, die Sie benötigen - Grundgehalt, die Stichprobengröße hinter jeder Schätzung, Währung und Standort - also aggregieren Sie sie selbst, anstatt einer einzigen Zahl zu vertrauen. Gewichten Sie nach Stichprobengröße, lassen Sie Rollen mit zu wenigen Datenpunkten weg, um aussagekräftig zu sein, und paaren Sie immer ein Gehalt mit seinem Standort und dem Datum, an dem es erhoben wurde - idealerweise über einen residential exit in diesem Markt - denn Vergütungsvergleiche veralten und variieren stark je nach Markt. Diese Disziplin ist es, die gescrapte Zeilen in einen Benchmark verwandelt, den ein Einstellungs- oder Finanzteam tatsächlich verteidigen kann. Es schützt Sie auch vor der klassischen Falle, eine einzelne auffällige Zahl zu zitieren, die sich als auf zwei Einreichungen von vor drei Jahren herausstellt.

Schritt 3: Setzen Sie die Region, damit die Daten Ihrem Markt entsprechen

Glassdoor lokalisiert Gehälter und Inhalte nach Region über ein tldp-Cookie: 1 ist die USA, 2 das Vereinigte Königreich, 3 Kanada, 4 Indien, 5 Australien, 6 Frankreich, 7 Deutschland. Setzen Sie es, um Vergütungen in dem Markt zu vergleichen, der Sie tatsächlich interessiert - eine US-Gehaltssumme ist bedeutungslos für eine Rolle im Vereinigten Königreich. Kombinieren Sie das Cookie mit einem Proxy-Exit im entsprechenden Land, damit die Anfrage durchgängig kohärent ist. Unser Leitfaden zur B2B-Datenerfassung behandelt die Konsistenz von Geo-Signalen in einer Pipeline.

Holen Sie sich geo-targeted residential proxies

Umgang mit dem 403-Rate-Limit

Glassdoor reagiert auf aggressives Scraping mit HTTP 403, nicht mit einem CAPTCHA. Behandeln Sie einen 403 als Taktungssignal, nicht als Sackgasse: Ziehen Sie sich exponentiell zurück, wechseln Sie zu einer frischen IP und verlangsamen Sie Ihre Gesamtgeschwindigkeit. Eine einzelne Rechenzentrums-IP, die durch die Paginierung von Bewertungen geht, wird innerhalb von ein oder zwei Seiten gedrosselt; das Verteilen von Anfragen über einen residential pool und das Pausieren dazwischen hält Sie unter dem Radar.

import time, random

def get_with_backoff(url, tries=4):
    for attempt in range(tries):
        r = requests.get(url, proxies=proxies, timeout=20,
                         headers={"User-Agent": "Mozilla/5.0"})
        if r.status_code == 200:
            return r
        if r.status_code == 403:              # rate-limited: pace + rotate
            wait = (2 ** attempt) + random.random()
            time.sleep(wait)                   # rotating gateway gives a new IP
    return None

Ein kurzes Wort zu Ethik und Recht: Vergleichen Sie in der Gesamtheit. Gehälter und Bewertungen sind als Verteilungen nützlich; individuelle Bewertungen, die mit identifizierbaren Personen verknüpft sind, sind persönliche Daten, also rekonstruieren Sie keine Profile von Rezensenten und respektieren Sie die Nutzungsbedingungen und Roboterrichtlinien von Glassdoor. Dies ist eine Anleitung, keine Rechtsberatung - überprüfen Sie Ihre Gerichtsbarkeit. Unser Überblick über die Rechtmäßigkeit des Web-Scrapings im Jahr 2026 geht tiefer.

Checkliste der zu befolgenden und zu vermeidenden Praktiken beim Scrapen von Glassdoor-Gehältern und -Bewertungen, ohne Blockierungen auszulösen
Lesen Sie das JSON, takten Sie Ihre Anfragen, aggregieren Sie die Ergebnisse - und rekonstruieren Sie niemals individuelle Rezensentenprofile.

Häufig gestellte Fragen

Wie scrapt man Glassdoor-Bewertungen mit Python?

Lösen Sie das Unternehmen über den internen Typeahead-Endpunkt auf seine Arbeitgeber-ID auf, erstellen Sie die Bewertungs-URL mit dieser ID und parsen Sie das __NEXT_DATA__-JSON auf der Seite anstelle des HTML. Leiten Sie Anfragen über residential proxies und ziehen Sie sich bei jedem 403 zurück. Der Bewertungstext, die Bewertungen und die Paginierungs-Cursor befinden sich alle in dieser JSON-Nutzlast.

Kann ich die Glassdoor-Login-Schranke umgehen?

Normalerweise müssen Sie das nicht. Die Login-Aufforderung ist ein kosmetisches Overlay, das über Inhalte gezeichnet wird, die bereits auf der Seite und in ihrem JSON geladen sind. Eine einfache HTTP-Anfrage, die das Rohmarkup liest, rendert das Modal nie. Wenn Sie einen echten Browser verwenden, verstecken Sie das Overlay mit einer CSS-display:none-Injektion anstatt sich einzuloggen.

Warum gibt Glassdoor 403-Fehler zurück?

Ein 403 ist Glassdoors Ratenbegrenzung, typischerweise weil zu viele Anfragen zu schnell von einer IP kamen. Verlangsamen Sie, fügen Sie exponentielles Backoff hinzu, und wechseln Sie durch einen residential proxy pool, damit Anfragen über viele IPs verteilt werden. Es ist ein Taktungsproblem, keine dauerhafte Sperre - gleichmäßiges, menschenähnliches Timing beseitigt es.

Ist das Scrapen von Glassdoor legal?

Das Sammeln öffentlicher, aggregierter Unternehmensdaten für Benchmarking ist im Allgemeinen risikoärmer, aber die Nutzungsbedingungen von Glassdoor schränken den automatisierten Zugriff ein und individuelle Bewertungen können persönliche Daten sein. Halten Sie es aggregiert, rekonstruieren Sie keine identifizierbaren Personen und respektieren Sie Robots und Nutzungsbedingungen. Dies ist allgemeine Anleitung, keine Rechtsberatung - bewerten Sie Ihren eigenen Anwendungsfall.

Der gesamte Job besteht aus drei Schritten: die Arbeitgeber-ID auflösen, das JSON lesen, das die Seite bereits enthält, und Anfragen über saubere IPs takten, damit 403er selten bleiben. Tun Sie das, und Glassdoor wird zu einem Live-Vergütungsvergleichs-Feed, anstatt zu einer Login-Schranke, gegen die Sie ständig prallen.

Beginnen Sie mit dem Benchmarking mit residential proxies