Como extrair dados do Glassdoor: principais ferramentas e tutorial em Python
O Glassdoor utiliza técnicas agressivas de combate à extração de dados (CAPTCHA, sobreposições, requisitos de login). Assim que você carrega o site, frequentemente se depara com solicitações de login, sobreposições pop-up, CAPTCHA e detecção agressiva de bots.
A estrutura da página também muda com frequência, o que impede o funcionamento dos scrapers de HTML. Em vez de contornar esses obstáculos manualmente, usamos uma infraestrutura de scraping gerenciada para resolvê-los.
Comparação de preços dos melhores raspadores de Glassdoor
Fornecedor | Tipo de raspador | Preço inicial/mês | Teste grátis |
|---|---|---|---|
Raspador dedicado | US$ 1,50 / 1.000 resultados | 7 dias | |
raspador de quadro de empregos | US$ 1,35 / 1.000 resultados | 2.000 créditos | |
Apify | Raspador dedicado | $ 19,99 | 3 dias |
ScraperAPI | raspador de quadro de empregos | $ 49,00 | 5.000 créditos |
ScrapingBee | raspador de quadro de empregos | $ 49,00 | 1.000 créditos |
As 5 principais APIs de extração de dados do Glassdoor
O Bright Data Glassdoor scraper permite extrair dados públicos sobre avaliações de empresas, salários e vagas de emprego do Glassdoor. Eles oferecem scrapers prontos para uso, específicos para a plataforma, que podem ser executados por meio da API Scraper ou da interface sem código .
O extrator de dados do Glassdoor coleta perfis de empresas diretamente do URL da empresa no Glassdoor e ajuda você a descobrir empresas por meio de filtros de entrada, palavras-chave ou fornecendo um URL de pesquisa do Glassdoor.
A Bright Data integrou a descoberta de DOM orientada por IA em sua API de extração de dados do Glassdoor. Esse recurso se adapta automaticamente às frequentes atualizações da estrutura HTML do Glassdoor.
O provedor também oferece três conjuntos de dados prontos para uso, para que você possa trabalhar com dados pré-coletados do Glassdoor em vez de extraí-los você mesmo.
Oxylabs oferece uma API Job Scraper para extrair dados de anúncios de emprego de páginas do Glassdoor. Sua oferta funciona de forma semelhante à abordagem de ScraperAPI: eles fornecem uma API Job Scraper geral que suporta vários sites de emprego (Glassdoor, Indeed, ZipRecruiter) em vez de criar um scraper dedicado para cada site.
Este scraper é compatível com qualquer site de empregos, incluindo o Glassdoor, porque a API Web Scraper Oxylabs é um mecanismo de scraping universal, o que significa que você passa uma URL de destino (por exemplo, uma página de busca de empregos do Glassdoor) e ele lida comrotação de IP , renderização de JavaScript e evasão anti-bot.
O extrator de dados do Glassdoor (Apify) vem com um grande conjunto de configurações predefinidas, para que você não precise criar cada consulta do zero. Os resultados podem ser exportados em formatos padrão e estruturados, como JSON, CSV ou XLSX.
A ferramenta oferece mais de quarenta locais predefinidos, incluindo trabalho remoto, além de grandes cidades globais como Nova York, São Francisco, Londres, Berlim e Tóquio, bem como países específicos. Ela suporta filtros avançados: você pode refinar a busca por faixas salariais, avaliações da empresa em uma escala de 0 a 5, vagas exclusivamente remotas e vagas com "candidatura fácil".
Existe também um parâmetro numérico `page_offset` que define a página inicial para a extração de dados, permitindo pular as páginas iniciais ou retomar de uma página posterior; este recurso é exclusivo para assinantes pagos. Como o Glassdoor pode ser sensível à extração de dados, o sistema inclui opções de configuração de proxy . Você pode escolher entre proxies de data center e residenciais, ou usar seus próprios proxies.
Em termos de escala, uma única execução pode coletar até 10.000 anúncios de emprego. O parâmetro de entrada `max_items` permite limitar o número de vagas a serem coletadas, e o parâmetro `max_pages` permite limitar o número de páginas de resultados que o coletor percorre, até 30 por consulta de pesquisa.
O ScrapingBee oferece um web scraper genérico, aplicável à coleta de dados do Glassdoor. Cada plano inclui um pacote mensal de créditos de API, e cada requisição consome créditos dependendo dos recursos habilitados. Uma chamada básica com proxy rotativo e sem renderização de JavaScript utiliza um crédito.
Por padrão, o ScrapingBee carrega a página em um navegador sem interface gráfica, executa seu JavaScript e, em seguida, retorna o HTML totalmente renderizado. Esse comportamento padrão custa 5 créditos por chamada quando usado com proxies rotativos padrão.
APIs dedicadas para extração de dados são oferecidas apenas para alguns sites (Google Search, Amazon, YouTube, Walmart, ChatGPT), e o Glassdoor não está entre eles, embora os recursos gerais que você está vendo sejam os mesmos que você usaria em sites que elas permitem.
ScraperAPI não oferece um scraper dedicado exclusivamente ao Glassdoor, ao contrário de Apify ou Bright Data. Em vez disso, oferece uma solução mais abrangente, a API Job Board Scraper, projetada para coletar anúncios de vagas e dados de publicação de várias plataformas de emprego importantes, incluindo LinkedIn, Glassdoor e Indeed.
Isso torna a solução deles mais versátil e flexível, porém menos especializada, em comparação com um fornecedor focado que mantém endpoints específicos para o Glassdoor. Você envia uma solicitação para a API deles especificando a página de vagas de emprego desejada (URL) ou a consulta de pesquisa. Você pode habilitar proxies premium (residenciais) e definir um `session_id` para que várias solicitações na mesma sessão reutilizem o mesmo endereço IP.
Extrair avaliações do Glassdoor usando Python
Passo 1: Configurando seu ambiente Python e credenciais da API
Começamos por importar as bibliotecas Python necessárias, desativar os avisos de SSL e definir os parâmetros de pesquisa (palavra-chave, localização, país), juntamente com as credenciais da API.
Isso configura:
- Bibliotecas necessárias
- Seu token de API
- ID do seu conjunto de dados
- Campos de pesquisa: palavra-chave da vaga, localização, país
Etapa 2: Iniciando a tarefa de raspagem de dados do Glassdoor
Agora que o ambiente está configurado, acionamos uma tarefa de coleta de dados enviando uma solicitação POST para a API. Se bem-sucedida, essa solicitação retorna um snapshot_id, que identifica a execução do seu conjunto de dados.
Etapa 3: Verificar o progresso e recuperar os resultados extraídos
Devemos realizar a votação até que a vaga seja marcada como:
- "preparar"
- "feito"
- "completo"
O script aguarda até 15 minutos e processa os formatos de resposta JSON e JSONL.
Etapa 4: Processamento e exportação para CSV
Após a lista de itens estar totalmente preenchida, a etapa final é converter as entradas de trabalho em um DataFrame e exportá-las para CSV.
Isso gera um arquivo CSV limpo que inclui:
- Cargo
- Nome e classificação da empresa
- Localização
- URLs
- Texto de visão geral
Políticas e riscos anti-raspagem do Glassdoor
Os Termos de Uso do Glassdoor afirmam explicitamente que você não pode 1 :
- Extrair, remover ou minerar quaisquer dados da plataforma.
- É proibido usar qualquer robô, spider, scraper ou outros meios automatizados para acessar a plataforma para qualquer finalidade sem permissão expressa por escrito.
- Contornar ou burlar quaisquer medidas utilizadas para impedir ou restringir o acesso ao site (por exemplo, robots.txt, bloqueios de IP ou CAPTCHA).
Como evitar bloqueios e garantir uma raspagem confiável
Embora esse fluxo de trabalho dependa de uma API em vez de extração direta de dados da web , ainda existem algumas considerações essenciais que ajudam a manter suas execuções livres de erros. A boa notícia é que grande parte da confiabilidade já está incorporada ao seu script.
Por exemplo, o loop de polling que você adicionou inclui atrasos temporizados, verificações de status e um período máximo de espera, o que impede que o script sobrecarregue a API ou fique travado quando um conjunto de dados demora mais para ser processado.
Uma prática simples é evitar acionar um grande número de tarefas de coleta de dados simultaneamente. Cada tarefa precisa processar parâmetros de busca, como palavras-chave, país e localização, portanto, é melhor executá-las em lotes em vez de todas ao mesmo tempo. Isso facilita o rastreamento de qual captura de tela está associada a qual busca e evita longas filas durante períodos de pico.
Seu script também lida com atrasos intermitentes verificando respostas 202 e aguardando antes de tentar novamente. Isso é intencional: dá ao servidor tempo suficiente para terminar de coletar os dados, em vez de falhar imediatamente ou tentar novamente de forma muito agressiva.
Outra coisa que seu script já faz é validar a saída. Ele não pressupõe que cada linha de uma resposta JSONL contenha um item completo ou perfeitamente formatado.
Em vez disso, tenta analisar cada linha, ignora tudo o que não for decodificado corretamente e, em seguida, verifica se algum item utilizável foi coletado. Isso ajuda a evitar erros quando o conjunto de dados retorna respostas em formato misto ou resultados parciais.
Seja o primeiro a comentar
Seu endereço de e-mail não será publicado. Todos os campos são obrigatórios.