In this Article
Este guia mostra como fazer scraping do Glassdoor com Python — avaliações de empresas e dados salariais agregados — e, igualmente importante, onde estão os limites legais e técnicos. O Glassdoor é um alvo difícil: renderiza conteúdo com JavaScript, defende-se agressivamente contra bots e bloqueia grande parte de seus dados atrás de uma barreira de cadastro. Portanto, um scraper do Glassdoor precisa de um navegador real (Playwright), proxies residenciais e uma regra clara para permanecer do lado certo do limite: atenha-se a páginas públicas, minimize o que você armazena e nunca contorne o login — e saiba que os termos do Glassdoor restringem o acesso automatizado desde o início.
Sou Andrii Byzov, um CMO fracionário AI-Native que cria pipelines de dados da web. Abaixo: o que você pode e não pode extrair do Glassdoor, as ressalvas legais logo de início e padrões de código funcionais para as páginas públicas de avaliações e salários.
Fatos principais
- Glassdoor é renderizado por JavaScript e fortemente protegido —
requestssimples muitas vezes é insuficiente; normalmente você precisa de um navegador headless como Playwright. - Os termos do Glassdoor restringem o acesso automatizado sem permissão por escrito — portanto, mesmo a raspagem pública sem login pode violar seus ToS. A barreira de login é um risco adicional, não a única linha.
- As avaliações são conteúdo semipessoal gerado por usuários — o próprio Glassdoor afirma que o anonimato não é garantido. Minimize o que você mantém, não armazene identidades e não republique o texto das avaliações.
- Proxies residenciais ajudam em escala — Glassdoor limita a taxa de acesso e sinaliza IPs de datacenter rapidamente — mas nenhuma ferramenta garante acesso ou torna a raspagem compatível.
- Trate isto como educacional. Para qualquer uso comercial ou em escala, obtenha permissão do Glassdoor e orientação jurídica.
O Que Você Pode e Não Pode Raspar no Glassdoor
Traçar essa linha primeiro é o que mantém um projeto de scraping do Glassdoor o mais defensável possível — e é a decisão mais importante em qualquer fluxo de trabalho de scraping do Glassdoor.
- Menor risco (público, não pessoal): a classificação geral de uma empresa e as faixas salariais agregadas por função — os números principais que o Glassdoor mostra sem uma conta.
- Use com cautela (público, mas sensível): trechos de avaliações (classificação, texto de prós/contras) são públicos, mas gerados por usuários e semipessoais. Se você os coletar, minimize — mantenha o sinal agregado, remova identidades, nunca republique o texto.
- Fora dos limites: qualquer coisa atrás da barreira de login/cadastro, identidades de avaliadores ou quaisquer dados pessoais, e a republicação de conteúdo de avaliações. Não contorne o bloqueio de “entrar para ler mais”.

É Legal Raspar o Glassdoor?
Depende, e as ressalvas importam mais aqui do que na maioria dos sites. Os termos de serviço do Glassdoor restringem o acesso automatizado sem permissão por escrito, portanto até raspar páginas públicas, sem login, pode violar seus ToS — a barreira de login é um risco adicional, não o único. Além disso, muito conteúdo é protegido por login, e as avaliações são conteúdo gerado por usuários, com peso em termos de direitos autorais e privacidade. A abordagem de menor risco: permaneça desconectado, prefira dados agregados públicos (classificações, faixas salariais), minimize e não armazene dados pessoais, respeite o robots.txt e os limites de taxa, não republique texto de avaliações — e obtenha permissão do Glassdoor para qualquer uso comercial. Para o framework completo, veja nosso guia sobre se web scraping é legal. Estas são informações gerais, não aconselhamento jurídico — consulte um advogado antes de qualquer projeto comercial de dados do Glassdoor.
Etapa 1 — Configure seu ambiente
Como o Glassdoor usa muito JavaScript, o scraper controla um navegador real via Playwright em vez de enviar solicitações HTTP brutas.
# 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
Etapa 2 — Carregue uma página pública do Glassdoor
Inicie um Chromium headless através de um proxy residencial e carregue um URL de avaliações de empresa público — sem login. O navegador executa o JavaScript da página para que as avaliações sejam renderizadas antes de você ler o 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")
Etapa 3 — Extraia avaliações públicas do Glassdoor
Para extrair avaliações do Glassdoor, analise os cartões de avaliação visíveis publicamente em campos estruturados — classificação, título, prós, contras, data. Os nomes de classes do Glassdoor são ofuscados e mudam com frequência, então confirme os seletores atuais no DevTools; os atributos data-test abaixo são ilustrativos.
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])
Etapa 4 — Extraia dados salariais agregados
As páginas de salários do Glassdoor mostram valores agregados por cargo — salário base mediano e faixas, não indivíduos. Essa visão agregada e pública é o que deve ser coletado; extraia-a da mesma forma.
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])
Etapa 5 — Supere as defesas anti-bot do Glassdoor
O Glassdoor usa uma pilha anti-bot agressiva — pontuação de reputação de IP, limitação de taxa e desafios de detecção de bots. Não há bypass garantido, e um navegador com proxies não torna o scraping compatível — mas duas coisas reduzem bloqueios em páginas públicas: um contexto de navegador real com cabeçalhos realistas e proxies residenciais rotativos para que nenhum IP único se esgote. IPs de datacenter são sinalizados rapidamente aqui; DataImpulse residential proxies ($1/GB, rotativos, 195 países) são interpretados como usuários reais. Controle o ritmo das suas solicitações — bombardear o Glassdoor faz com que você seja bloqueado e aumenta os problemas de carga do servidor que enfraquecem sua base legal.
# 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
Etapa 6 — Exporte seus dados
Salve os dados públicos e agregados que você coletou em JSON e CSV. Mantenha os dados pessoais fora — armazene avaliações e texto agregado, não identidades dos avaliadores.
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)
Perguntas frequentes
É legal fazer scraping do Glassdoor?
Depende, e as ressalvas são reais: os termos do Glassdoor restringem o acesso automatizado sem permissão por escrito, portanto até mesmo fazer scraping de páginas públicas pode violar seus Termos de Serviço, grande parte do site exige login, e as avaliações são conteúdo de usuário protegido por direitos autorais e semipessoal. Se você prosseguir, a abordagem de menor risco é usar apenas dados agregados públicos (classificações, faixas salariais), sem estar logado, de forma minimizada, sem republicação — e obter permissão/orientação jurídica para uso comercial. Estas são informações gerais, não aconselhamento jurídico — veja nosso guia sobre a legalidade do web scraping.
Posso fazer scraping do Glassdoor sem fazer login?
Sim — e você deve permanecer deslogado. O Glassdoor exibe publicamente algumas classificações de empresas, trechos de avaliações e dados salariais agregados. Fazer scraping por trás do login significa violar os termos que você aceita ao entrar, que é a zona de risco. Colete apenas o que estiver visível sem uma conta.
Por que um script simples de requests não funciona no Glassdoor?
O Glassdoor renderiza conteúdo com JavaScript e executa detecção de bots, então uma solicitação HTTP simples retorna poucos dados utilizáveis ou uma página de desafio. Você precisa de um navegador headless (Playwright ou similar) que execute o JS da página, além de proxies residenciais para evitar ser sinalizado.
Preciso de proxies para fazer scraping do Glassdoor?
Para mais do que algumas poucas páginas, sim. O Glassdoor limita a taxa de acesso e sinaliza IPs de datacenter rapidamente, então um único IP é bloqueado depressa. Proxies residenciais rotativos distribuem as solicitações entre muitos IPs de usuários reais e permitem coletar em escala sem acionar as defesas.
Posso fazer scraping de salários individuais ou nomes de avaliadores?
Não — e você não deve. Os dados salariais do Glassdoor devem ser lidos de forma agregada (medianas e faixas por cargo), e as identidades dos avaliadores são dados pessoais que ficam em uma zona regulada. Colete apenas sinais agregados e não pessoais.
Conclusão
Fazer scraping do Glassdoor é possível, mas com limitações: é um site renderizado em JavaScript e bem protegido, onde a maior parte do valor fica restrita, então um scraper funcional para o Glassdoor precisa de um navegador headless e proxies residenciais rotativos — além de uma regra firme para coletar apenas dados públicos, não pessoais e agregados, sem contornar o login. Acerte a camada técnica com Playwright mais proxies residenciais, mantenha tudo dentro de um escopo defensável e consulte nosso guia de melhores proxies para web scraping para a configuração mais ampla.
Última atualização: June 25, 2026.
