In this Article
Ce guide explique comment scraper Glassdoor avec Python, notamment les avis d’entreprise et les données salariales agrégées, tout en précisant les limites juridiques et techniques. Glassdoor est une cible difficile : le site affiche son contenu avec JavaScript, se défend agressivement contre les bots et place une grande partie de ses données derrière un mur d’inscription. Un scraper Glassdoor a donc besoin d’un véritable navigateur (Playwright), de proxies résidentiels et d’une règle claire : s’en tenir aux pages publiques, limiter les données stockées et ne jamais contourner la connexion. Gardez à l’esprit que les conditions de Glassdoor restreignent d’emblée l’accès automatisé.
Je suis Andrii Byzov, CMO fractionnaire spécialisé dans l’IA et créateur de pipelines de données web. Vous trouverez ci-dessous ce que vous pouvez et ne pouvez pas scraper sur Glassdoor, les points de vigilance juridiques à connaître, ainsi que des exemples de code fonctionnels pour les pages publiques d’avis et de salaires.
Faits clés
- Glassdoor est rendu en JavaScript et fortement protégé : de simples
requestssont souvent insuffisantes ; vous avez généralement besoin d’un navigateur headless comme Playwright. - Les conditions de Glassdoor restreignent l’accès automatisé sans autorisation écrite : ainsi, même le scraping public et non connecté peut enfreindre ses ToS. Le mur de connexion est un risque supplémentaire, pas la seule limite.
- Les avis sont du contenu généré par les utilisateurs, semi-personnel : Glassdoor indique lui-même que l’anonymat n’est pas garanti. Minimisez ce que vous conservez, ne stockez pas les identités et ne republiez pas le texte des avis.
- Les proxies résidentiels aident à grande échelle : Glassdoor limite le débit et signale rapidement les IP de datacenter, mais aucun outil ne garantit l’accès ni ne rend le scraping conforme.
- Ce contenu est fourni à titre éducatif. Pour tout usage commercial ou à grande échelle, obtenez l’autorisation de Glassdoor et un avis juridique.
Ce que vous pouvez et ne pouvez pas scraper sur Glassdoor
Définir cette limite dès le départ rend un projet de scraping Glassdoor aussi défendable que possible. C’est la décision la plus importante de tout workflow de scraping Glassdoor.
- Risque le plus faible (public, non personnel) : la note globale d’une entreprise et les fourchettes de salaires agrégées par poste, c’est-à-dire les chiffres clés que Glassdoor affiche sans compte.
- À utiliser avec prudence (public mais sensible) : les extraits d’avis (note, texte des avantages/inconvénients) sont publics, mais générés par les utilisateurs et semi-personnels. Si vous les collectez, limitez la collecte : conservez le signal agrégé, supprimez les identités et ne republiez jamais le texte.
- Hors limites : tout ce qui se trouve derrière le mur de connexion/inscription, les identités des auteurs d’avis ou toute donnée personnelle, ainsi que la republication du contenu des avis. Ne contournez pas la barrière “sign in to read more”.

Est-il légal de scraper Glassdoor ?
Cela dépend, et les points de vigilance sont plus importants ici que sur la plupart des sites. Les conditions d’utilisation de Glassdoor restreignent l’accès automatisé sans autorisation écrite, donc même le scraping de pages publiques, sans connexion, peut enfreindre ses ToS. Le mur de connexion représente un risque supplémentaire, mais ce n’est pas la seule limite. De plus, une grande partie du contenu est réservée aux utilisateurs connectés, et les avis sont du contenu généré par les utilisateurs, avec des implications importantes en matière de droit d’auteur et de confidentialité. L’approche la moins risquée consiste à rester déconnecté, à privilégier les données publiques agrégées (notes, fourchettes de salaires), à limiter la collecte et à ne stocker aucune donnée personnelle, à respecter robots.txt et les limites de débit, à ne pas republier le texte des avis et à obtenir l’autorisation de Glassdoor pour tout usage commercial. Pour le cadre complet, consultez notre guide sur la légalité du web scraping. Il s’agit d’informations générales, et non de conseils juridiques. Consultez un conseiller juridique avant tout projet commercial impliquant des données Glassdoor.
Étape 1 : Configurer votre environnement
Étant donné que Glassdoor repose fortement sur JavaScript, le scraper pilote un véritable navigateur via Playwright plutôt que d’envoyer des requêtes HTTP brutes.
# 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
Étape 2 : Charger une page Glassdoor publique
Lancez un Chromium headless via un proxy résidentiel et chargez une URL d’avis d’entreprise publique, sans connexion. Le navigateur exécute le JavaScript de la page afin que les avis s’affichent avant que vous ne lisiez le HTML.
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")
Étape 3 : Extraire les avis publics Glassdoor
Pour extraire les avis Glassdoor, transformez les cartes d’avis publiquement visibles en champs structurés : note, titre, avantages, inconvénients et date. Les noms de classes de Glassdoor sont obfusqués et changent souvent, alors confirmez les sélecteurs actuels dans DevTools ; les attributs data-test ci-dessous sont fournis à titre d’exemple.
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])
Étape 4 : Scraper des données salariales agrégées
Les pages de salaires de Glassdoor affichent des chiffres agrégés par poste : salaire de base médian et fourchettes, plutôt que des données individuelles. C’est cette vue publique et agrégée qu’il convient de collecter ; récupérez-la de la même manière.
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])
Étape 5 : Gérer les défenses anti-bots de Glassdoor
Glassdoor utilise un dispositif anti-bots agressif : évaluation de la réputation des IP, limitation du débit et mécanismes de détection des bots. Aucun contournement n’est garanti, et un navigateur associé à des proxys ne rend pas le scraping conforme. Toutefois, deux éléments réduisent les blocages sur les pages publiques : un contexte de navigateur réel avec des en-têtes réalistes, et des proxys résidentiels rotatifs afin d’éviter qu’une même IP ne soit trop sollicitée. Les IP de datacenter sont rapidement signalées ici ; les proxys résidentiels DataImpulse ($1/GB, rotatifs, 195 pays) ressemblent davantage à de vrais utilisateurs. Espacez vos requêtes : solliciter Glassdoor de manière intensive entraînera des blocages et des problèmes de charge serveur, ce qui affaiblit votre position juridique.
# 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
Étape 6 : Exporter vos données
Enregistrez les données publiques agrégées collectées aux formats JSON et CSV. Excluez les données personnelles : conservez les notes et les données agrégées, et non l’identité des évaluateurs.
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)
Foire aux questions
Est-il légal de scraper Glassdoor ?
Cela dépend, et les risques sont réels : les conditions de Glassdoor limitent l’accès automatisé sans autorisation écrite. Même le scraping de pages publiques peut donc enfreindre ses ToS, une grande partie du site nécessite une connexion, et les avis sont des contenus utilisateur protégés par le droit d’auteur et semi-personnels. Si vous poursuivez, l’approche la moins risquée consiste à collecter uniquement des données agrégées publiques (notes, fourchettes de salaires), sans être connecté, en limitant la collecte et sans republication, puis à obtenir une autorisation ou un avis juridique pour tout usage commercial. Il s’agit d’informations générales, pas d’un conseil juridique. Consultez notre guide sur la légalité du web scraping.
Puis-je scraper Glassdoor sans me connecter ?
Oui, et vous devriez rester déconnecté. Glassdoor affiche publiquement certaines notes d’entreprise, des extraits d’avis et des données salariales agrégées. Scraper du contenu accessible après connexion revient à enfreindre les conditions acceptées lors de l’authentification et constitue la principale zone de risque. Collectez uniquement ce qui est visible sans compte.
Pourquoi un simple script requests ne fonctionne-t-il pas sur Glassdoor ?
Glassdoor rend le contenu avec JavaScript et exécute une détection des bots ; une simple requête HTTP renvoie donc peu de données exploitables ou une page de challenge. Vous avez besoin d’un navigateur headless (Playwright ou similaire) qui exécute le JS de la page, ainsi que de proxys résidentiels pour éviter d’être signalé.
Ai-je besoin de proxys pour scraper Glassdoor ?
Pour plus qu’une poignée de pages, oui. Glassdoor limite le débit et signale rapidement les IP de datacenter, de sorte qu’une IP unique se retrouve vite bloquée. Les proxys résidentiels rotatifs répartissent les requêtes sur de nombreuses IP de vrais utilisateurs et vous permettent de collecter à grande échelle sans déclencher les défenses.
Puis-je scraper des salaires individuels ou des noms d’auteurs d’avis ?
Non, et vous ne devriez pas le faire. Les données salariales de Glassdoor sont destinées à être lues sous forme agrégée (médianes et fourchettes par poste), et les identités des auteurs d’avis sont des données personnelles relevant d’un cadre réglementé. Collectez uniquement des signaux agrégés et non personnels.
Conclusion
Scraper Glassdoor est faisable, mais contraignant : c’est un site rendu en JavaScript et bien protégé, dont l’essentiel de la valeur est verrouillé. Un scraper Glassdoor opérationnel nécessite donc un navigateur headless et des proxies résidentiels rotatifs, ainsi qu’une règle stricte : collecter uniquement des données publiques, non personnelles et agrégées, sans contourner la connexion. Mettez en place la bonne couche technique avec Playwright et des proxies résidentiels, restez dans un cadre défendable, et consultez notre guide des meilleurs proxies pour le web scraping pour une configuration plus complète.
Dernière mise à jour : 25 juin 2026.
