How to scrape Glassdoor - reviews and salary data with Python and proxies - DataImpulse

Dieser Leitfaden zeigt, wie Sie Glassdoor mit Python scrapen: Unternehmensbewertungen und aggregierte Gehaltsdaten. Ebenso wichtig ist, wo die rechtlichen und technischen Grenzen liegen. Glassdoor ist ein schwieriges Ziel: Die Inhalte werden mit JavaScript gerendert, die Seite schützt sich aggressiv gegen Bots und sperrt einen Großteil ihrer Daten hinter einer Registrierung. Ein Glassdoor-Scraper benötigt daher einen echten Browser (Playwright), Residential Proxies und eine klare Regel, um innerhalb der zulässigen Grenzen zu bleiben: Beschränken Sie sich auf öffentliche Seiten, minimieren Sie gespeicherte Daten und umgehen Sie niemals den Login. Beachten Sie außerdem, dass die Nutzungsbedingungen von Glassdoor automatisierten Zugriff grundsätzlich einschränken.

Ich bin Andrii Byzov, ein AI-Native Fractional CMO, der Webdaten-Pipelines entwickelt. Im Folgenden erfahren Sie, was Sie bei Glassdoor scrapen können und was nicht, welche rechtlichen Vorbehalte es gibt und welche funktionierenden Code-Muster sich für öffentliche Bewertungs- und Gehaltsseiten eignen.


Wichtige Fakten

  • Glassdoor wird mit JavaScript gerendert und stark geschützt. Einfache requests-Anfragen reichen oft nicht aus. In der Regel benötigen Sie einen Headless-Browser wie Playwright.
  • Die Nutzungsbedingungen von Glassdoor beschränken automatisierten Zugriff ohne schriftliche Genehmigung. Daher kann selbst das Scrapen öffentlicher Seiten ohne Anmeldung gegen die Nutzungsbedingungen verstoßen. Die Login-Sperre ist ein zusätzliches Risiko, aber nicht die einzige Grenze.
  • Bewertungen sind nutzergenerierte, teilweise personenbezogene Inhalte. Glassdoor selbst weist darauf hin, dass Anonymität nicht garantiert ist. Minimieren Sie die gespeicherten Daten, speichern Sie keine Identitäten und veröffentlichen Sie Bewertungstexte nicht erneut.
  • Residential Proxies helfen bei größeren Mengen. Glassdoor begrenzt Anfragen und markiert Rechenzentrums-IP-Adressen schnell. Kein Tool garantiert jedoch Zugriff oder macht Scraping regelkonform.
  • Verstehen Sie dies als Bildungsinhalt. Holen Sie für jede kommerzielle Nutzung oder größere Datenmengen die Genehmigung von Glassdoor und rechtlichen Rat ein.

Was Sie bei Glassdoor scrapen können und was nicht

Diese Grenze von Anfang an zu ziehen, macht ein Glassdoor-Scraping-Projekt so gut vertretbar wie möglich. Es ist die wichtigste Entscheidung in jedem Glassdoor-Scraping-Workflow.

  • Geringstes Risiko (öffentlich, nicht personenbezogen): die Gesamtbewertung eines Unternehmens und aggregierte Gehaltsspannen nach Position. Das sind die Kennzahlen, die Glassdoor ohne Konto anzeigt.
  • Mit Vorsicht verwenden (öffentlich, aber sensibel): Bewertungsausschnitte (Bewertung, Pro-/Contra-Text) sind öffentlich, jedoch nutzergeneriert und teilweise personenbezogen. Wenn Sie sie erfassen, beschränken Sie sich auf das Nötigste: Behalten Sie aggregierte Signale, entfernen Sie Identitäten und veröffentlichen Sie den Text niemals erneut.
  • Tabu: alles hinter der Login- oder Registrierungssperre, die Identitäten von Bewertenden oder sonstige personenbezogene Daten sowie die erneute Veröffentlichung von Bewertungsinhalten. Umgehen Sie nicht die Sperre “anmelden, um mehr zu lesen”.
Scraping von Glassdoor – was zulässig und was tabu ist: Am risikoärmsten sind öffentliche Bewertungen und aggregierte Gehaltsspannen; tabu sind Inhalte hinter einem Login, Identitäten von Bewertenden, das erneute Veröffentlichen von Bewertungstexten oder das Umgehen der Anmeldeschranke

Ist es legal, Glassdoor zu scrapen?

Das hängt vom Einzelfall ab, und die Vorbehalte wiegen hier stärker als bei den meisten Websites. Die Nutzungsbedingungen von Glassdoor beschränken automatisierten Zugriff ohne schriftliche Genehmigung. Daher kann selbst das Scrapen öffentlicher Seiten ohne Anmeldung gegen die Nutzungsbedingungen verstoßen. Die Login-Sperre ist ein zusätzliches Risiko, aber nicht das einzige. Zudem sind viele Inhalte nur nach Anmeldung zugänglich, und Bewertungen sind nutzergenerierte Inhalte mit urheberrechtlicher und datenschutzrechtlicher Relevanz. Der risikoärmste Ansatz: Bleiben Sie abgemeldet, bevorzugen Sie öffentliche aggregierte Daten (Bewertungen, Gehaltsspannen), minimieren und speichern Sie keine personenbezogenen Daten, beachten Sie robots.txt und Ratenbegrenzungen und veröffentlichen Sie Bewertungstexte nicht erneut. Holen Sie für jede kommerzielle Nutzung die Genehmigung von Glassdoor ein. Den vollständigen Rahmen finden Sie in unserem Leitfaden dazu, ob Web Scraping legal ist. Dies sind allgemeine Informationen und keine Rechtsberatung. Lassen Sie sich vor jedem kommerziellen Glassdoor-Datenprojekt rechtlich beraten.


Schritt 1: Umgebung einrichten

Da Glassdoor stark auf JavaScript setzt, steuert der Scraper über Playwright einen echten Browser, statt rohe HTTP-Anfragen zu senden.



# Glassdoor renders content with JavaScript and defends hard, so use a
# real browser (Playwright) rather than plain requests.
pip install playwright beautifulsoup4
playwright install chromium




Schritt 2: Öffentliche Glassdoor-Seite laden

Starten Sie Chromium im Headless-Modus über einen Residential Proxy und laden Sie eine öffentliche URL mit Unternehmensbewertungen, ohne sich anzumelden. Der Browser führt das JavaScript der Seite aus, sodass die Bewertungen gerendert werden, bevor Sie das HTML auslesen.



from playwright.sync_api import sync_playwright

# Route the browser through a residential proxy (see Step 4)
PROXY = {"server": "http://gw.dataimpulse.com:823",
         "username": "YOUR_DI_LOGIN", "password": "YOUR_DI_PASSWORD"}

def get_html(url):
    with sync_playwright() as p:
        browser = p.chromium.launch(proxy=PROXY, headless=True)
        page = browser.new_page(locale="en-US")
        page.goto(url, wait_until="networkidle", timeout=60000)
        html = page.content()
        browser.close()
        return html

# A PUBLIC company reviews page (do not log in)
html = get_html("https://www.glassdoor.com/Reviews/Example-Company-Reviews-E12345.htm")

















Schritt 3: Öffentliche Glassdoor-Bewertungen scrapen

Um Glassdoor-Bewertungen zu scrapen, parsen Sie die öffentlich sichtbaren Bewertungskarten in strukturierte Felder: Bewertung, Titel, Vorteile, Nachteile und Datum. Die Klassennamen von Glassdoor sind verschleiert und ändern sich häufig. Prüfen Sie daher die aktuellen Selektoren in den DevTools. Die folgenden data-test-Attribute dienen nur zur Veranschaulichung.



from bs4 import BeautifulSoup

def parse_reviews(html):
    """Parse the publicly visible reviews. Selectors change often —
    confirm the current ones in DevTools before relying on them."""
    soup = BeautifulSoup(html, "html.parser")
    reviews = []
    for card in soup.select('[data-test="review-details"]'):
        def t(sel):
            el = card.select_one(sel)
            return el.get_text(strip=True) if el else None
        reviews.append({
            "rating": t('[data-test="review-rating"]'),
            "title":  t('[data-test="review-title"]'),
            "pros":   t('[data-test="pros"]'),
            "cons":   t('[data-test="cons"]'),
            "date":   t('[data-test="review-date"]'),
        })
    return reviews

print(parse_reviews(html)[:3])





















Schritt 4: Aggregierte Gehaltsdaten scrapen

Die Gehaltsseiten von Glassdoor zeigen aggregierte Werte nach Position: Median-Grundgehalt und Spannen, keine Daten einzelner Personen. Diese aggregierte öffentliche Ansicht sollten Sie erfassen. Rufen Sie sie auf dieselbe Weise ab.



def parse_salaries(html):
    """Parse aggregated, public salary ranges (role-level, not individuals)."""
    soup = BeautifulSoup(html, "html.parser")
    rows = []
    for row in soup.select('[data-test="salary-row"]'):
        def t(sel):
            el = row.select_one(sel)
            return el.get_text(strip=True) if el else None
        rows.append({
            "job_title": t('[data-test="job-title"]'),
            "base_pay":  t('[data-test="median-base"]'),
            "range":     t('[data-test="pay-range"]'),
        })
    return rows

salary_html = get_html("https://www.glassdoor.com/Salaries/example-company-salaries-E12345.htm")
print(parse_salaries(salary_html)[:3])

















Schritt 5: Mit Glassdoors Anti-Bot-Schutz umgehen

Glassdoor verwendet einen strengen Anti-Bot-Stack mit IP-Reputationsbewertung, Ratenbegrenzung und Bot-Erkennungsprüfungen. Es gibt keine garantierte Umgehung, und ein Browser plus Proxies macht Scraping nicht regelkonform. Zwei Faktoren reduzieren jedoch Sperren auf öffentlichen Seiten: ein echter Browser-Kontext mit realistischen Headern und rotierende Residential Proxies, damit keine einzelne IP überlastet wird. Rechenzentrums-IP-Adressen werden hier schnell markiert. DataImpulse Residential Proxies ($1/GB, rotierend, 195 Länder) wirken wie echte Nutzer. Dosieren Sie Ihre Anfragen: Wer Glassdoor mit Anfragen überhäuft, wird gesperrt und verschärft die Probleme durch Serverlast, die die eigene rechtliche Position schwächen.



# Rotate residential IPs and look like a real browser.
# Use a fresh session id per run so each crawl gets a clean IP.
PROXY = {"server": "http://gw.dataimpulse.com:823",
         "username": "YOUR_DI_LOGIN__cr.us;sid.run1",
         "password": "YOUR_DI_PASSWORD"}

def fetch(url):
    with sync_playwright() as p:
        browser = p.chromium.launch(proxy=PROXY, headless=True)
        ctx = browser.new_context(
            locale="en-US",
            user_agent=("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                        "(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"),
            viewport={"width": 1366, "height": 900},
        )
        page = ctx.new_page()
        page.goto(url, wait_until="networkidle")  # pace requests; Glassdoor rate-limits
        html = page.content()
        browser.close()        # always clean up the browser
        return html




















Schritt 6: Daten exportieren

Speichern Sie die erfassten öffentlichen, aggregierten Daten in JSON und CSV. Lassen Sie personenbezogene Daten außen vor: Speichern Sie Bewertungen und aggregierten Text, nicht die Identitäten der Bewertenden.



import json, csv

reviews = parse_reviews(html)

with open("glassdoor_reviews.json", "w", encoding="utf-8") as f:
    json.dump(reviews, f, indent=2, ensure_ascii=False)

if reviews:
    with open("glassdoor_reviews.csv", "w", newline="", encoding="utf-8") as f:
        w = csv.DictWriter(f, fieldnames=reviews[0].keys())
        w.writeheader(); w.writerows(reviews)











Häufig gestellte Fragen

Ist es legal, Glassdoor zu scrapen?

Das hängt vom Einzelfall ab, und die Vorbehalte sind real: Die Nutzungsbedingungen von Glassdoor beschränken automatisierten Zugriff ohne schriftliche Genehmigung. Daher kann selbst das Scrapen öffentlicher Seiten gegen die Nutzungsbedingungen verstoßen, ein Großteil der Website ist nur nach Anmeldung zugänglich und Bewertungen sind urheberrechtlich geschützte, teilweise personenbezogene nutzergenerierte Inhalte. Wenn Sie fortfahren, ist der risikoärmste Ansatz, sich auf öffentliche aggregierte Daten (Bewertungen, Gehaltsspannen) zu beschränken, abgemeldet zu bleiben, Daten zu minimieren und nichts erneut zu veröffentlichen. Holen Sie für die kommerzielle Nutzung Genehmigung und rechtlichen Rat ein. Dies sind allgemeine Informationen und keine Rechtsberatung. Lesen Sie unseren Leitfaden zur rechtlichen Zulässigkeit von Web Scraping.

Kann ich Glassdoor ohne Anmeldung scrapen?

Ja, und Sie sollten abgemeldet bleiben. Glassdoor zeigt einige Unternehmensbewertungen, Bewertungsausschnitte und aggregierte Gehaltsdaten öffentlich an. Das Scrapen hinter dem Login bedeutet, gegen die Bedingungen zu verstoßen, die Sie bei der Anmeldung akzeptieren. Das ist der risikoreiche Bereich. Erfassen Sie nur Inhalte, die ohne Konto sichtbar sind.

Warum funktioniert ein einfaches requests-Skript bei Glassdoor nicht?

Glassdoor rendert Inhalte mit JavaScript und nutzt Bot-Erkennung. Daher liefert eine einfache HTTP-Anfrage kaum nutzbare Daten oder eine Prüfseite. Sie benötigen einen Headless-Browser (Playwright oder ähnlich), der das JS der Seite ausführt, sowie Residential Proxies, um nicht markiert zu werden.

Benötige ich Proxies, um Glassdoor zu scrapen?

Für mehr als eine Handvoll Seiten: ja. Glassdoor begrenzt Anfragen und markiert Rechenzentrums-IP-Adressen schnell, sodass eine einzelne IP rasch gesperrt wird. Rotierende Residential Proxies verteilen Anfragen auf viele IP-Adressen echter Nutzer und ermöglichen die Erfassung in größerem Umfang, ohne den Schutz auszulösen.

Kann ich individuelle Gehälter oder Namen von Bewertenden scrapen?

Nein, und Sie sollten es nicht tun. Gehaltsdaten von Glassdoor sind zur aggregierten Betrachtung bestimmt, also Mediane und Spannen nach Position. Die Identitäten von Bewertenden sind personenbezogene Daten und fallen in einen regulierten Bereich. Erfassen Sie ausschließlich aggregierte, nicht personenbezogene Signale.


Fazit

Glassdoor zu scrapen ist möglich, aber mit Einschränkungen verbunden: Die Website wird mit JavaScript gerendert und ist gut geschützt, während ein Großteil der wertvollen Inhalte gesperrt ist. Ein funktionierender Glassdoor-Scraper benötigt daher einen Headless-Browser und rotierende Residential Proxies sowie die feste Regel, nur öffentliche, nicht personenbezogene und aggregierte Daten zu erfassen, ohne den Login zu umgehen. Setzen Sie die technische Ebene mit Playwright und Residential Proxies sauber um, bleiben Sie innerhalb des vertretbaren Rahmens und lesen Sie für den umfassenderen Aufbau unseren Leitfaden zu den besten Proxies für Web Scraping.

Zuletzt aktualisiert: 25. Juni 2026.



Share article: