Ir para o conteúdo principal
Piloterr
Voltar ao blog
12 de novembro de 2024

Como Scrapear o Indeed.com

Aproximadamente 20% dos sites que você precisa raspar usam Cloudflare, um robusto sistema de proteção anti-bot que pode facilmente bloqueá-lo. O Indeed está entre os sites protegidos pelo sistema anti-bot do Cloudflare, apresentando seu conhecido desafio "Verifique se você é humano" ou "Verificação Adicional Necessária". Neste artigo, exploraremos possíveis soluções para contornar suas medidas anti-bot com o scraping e raspar com sucesso a página de empregos e a página da empresa.

Visão geral do scraping do Indeed

O Indeed é estruturado em várias seções:

  • Páginas de resultados de busca
  • Páginas de listagem de empregos
  • Páginas de perfil da empresa

O que é raspagem de dados?

Raspagem de dados, ou "web scraping," refere-se à extração automatizada de dados de um site por meio de software ou scripts. Esse processo permite que empresas coletem grandes quantidades de informações rapidamente, que podem incluir listagens de empregos, detalhes de empresas e até perfis de usuários. Por exemplo, os dados raspados do Indeed podem ser valiosos para análises, recrutamento e pesquisa competitiva, mas devem aderir a estruturas legais rigorosas.

Compreendendo a importância da raspagem de dados no Indeed

A raspagem de dados permite que empresas e pesquisadores coletem informações valiosas da plataforma do Indeed, como tendências de emprego, salários, requisitos de habilidades e dados de empregadores. Esses dados ajudam na tomada de decisões informadas, na condução de pesquisas de mercado e na criação de serviços inovadores.

Como as empresas usam os dados que recuperam?

As empresas usam os dados raspados para acompanhar tendências do setor, analisar concorrentes, aprimorar estratégias de recrutamento e criar insights sobre o mercado de trabalho. Esses dados capacitam as organizações a otimizar práticas de contratação, construir produtos baseados em dados e entender as demandas do mercado de forma mais eficaz. Raspar dados do Indeed requer uma abordagem estratégica devido à estrutura da plataforma e às proteções que ela possui, como as medidas anti-bot do Cloudflare. Compreender como o Indeed está organizado e como contornar esses protocolos de segurança ajudará você a coletar os dados de que precisa de forma eficiente.

Método 1: Explorando o processo de web scraping

Principais etapas na criação de um web scraper para o Indeed

  1. Determine seus objetivos
    Defina claramente os dados que deseja extrair do Indeed. Isso pode incluir títulos de emprego, localização/localizações, salários ou nomes de empresas. Fornecer detalhes específicos facilitará o desenvolvimento de um web scraper eficiente e evitará a coleta de dados desnecessários.
  2. Analise os elementos da página de emprego: Utilize as ferramentas de desenvolvedor do navegador para examinar a estrutura da página de emprego ou da empresa. Ao identificar os elementos HTML relevantes, você pode localizar e extrair o texto necessário dos resultados da busca.
  3. Lide com a Proteção do Cloudflare: O Indeed emprega a proteção anti-bot do Cloudflare, que pode dificultar as tentativas de scraping. Para superar essas proteções, ferramentas como Cloudscraper, FlareSolverr, Cfscrape ou outros solucionadores de Cloudflare podem ser vantajosas. Essas ferramentas emulam comportamentos de navegação humana e auxiliam o web scraper a superar desafios de CAPTCHA e outros mecanismos de detecção de bots.
  4. Desenvolva seu web scraper: Utilize bibliotecas Python como Beautiful Soup, Scrapy, ou Cheerio, lxml para desenvolver seu web scraper. Essas bibliotecas auxiliam na navegação pelas páginas da web do Indeed, no parsing do HTML e na extração dos dados/texto/imagens desejados.
  5. Gerencie limites de taxa: Raspar sites muito rapidamente pode acionar proteções anti-bot. Para evitar ser bloqueado, incorpore proxies rotativos e implemente atrasos nas requisições para imitar padrões de navegação humana. Isso ajudará você a coletar grandes quantidades de dados enquanto permanece indetectável.
  6. Analise e limpe os dados: Após extrair os dados, limpe e estruture-os para análise posterior. Elimine quaisquer caracteres desnecessários, formate os dados do emprego.
  7. Armazenamento de dados: Uma vez que os dados tenham sido limpos, armazene-os em um formato eficiente, como um banco de dados com Postgres (Supabase, Airtable...) ou um arquivo CSV. Isso facilitará a análise, visualização ou processamento adicional conforme suas necessidades. Manutenção Regular: O scraping requer manutenção contínua. Monitore e atualize regularmente seu web scraper para se adaptar a mudanças na estrutura da página da web do Indeed, atualizações de conteúdo e protocolos de segurança em evolução, incluindo as defesas do Cloudflare.

Compreendendo o Gerenciamento de Bots do Cloudflare

O Cloudflare fornece serviços de entrega de conteúdo e segurança na web, incluindo seu Firewall de Aplicações Web (WAF), que protege sites contra ameaças como cross-site scripting (XSS), preenchimento de credenciais e ataques de Negação de Serviço Distribuído (DDoS).

Como Scrapear o Indeed.com (1)

Um componente vital do Cloudflare é o Bot Manager, projetado para proteger sites de tráfego malicioso de bots. O Bot Manager identifica e mitiga ataques de bots sem interromper usuários legítimos. No entanto, o Cloudflare considera qualquer tráfego de bot desconhecido ou não incluído na lista de permissões, como web scrapers, como malicioso. Portanto, mesmo tentativas legítimas de scraping podem ser bloqueadas, levando à negação de acesso a sites protegidos pelo Cloudflare.

Esses erros são frequentemente acompanhados por um código de resposta HTTP Cloudflare 403 Forbidden, indicando que a requisição foi bloqueada devido a atividade suspeita de bot. Para contornar essas proteções, podem ser necessários solucionadores específicos do Cloudflare ou técnicas como proxies rotativos, imitação de comportamento humano ou uso de navegadores headless.

Um exemplo ruim de scraper de empregos em Python

O seguinte trecho de código mostra um exemplo de método de requisição HTTP e parsing destinado a extrair dados de empregos do Indeed usando bibliotecas Python como httpx e re:

Python
import httpx
import re
import json

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
}

def parse_search_page(html: str):
    data = re.findall(r'window.mosaic.providerData\["mosaic-provider-jobcards"\]=(\{.+?\});', html)
    if data is not None and data != 'null':
        return json.loads(data[0])

response = httpx.get("https://www.indeed.com/viewjob?jk=cbce6eaf017aa47b", headers=headers)
print(parse_search_page(response.text))

Esta requisição falha, pois o site do Indeed emprega proteções anti-bot, notadamente através do Cloudflare, que bloqueia requisições HTTP que não simulam comportamento humano. Bibliotecas como httpx ou requests são geralmente ineficazes contra essas proteções. Para contornar o Cloudflare, você precisa de ferramentas como navegadores headless ou APIs dedicadas de web scraper que possam imitar interações humanas de forma mais confiável.

Método 3: API de web scraping para contornar o Cloudflare

Embora as técnicas mencionadas neste artigo possam ser úteis, elas não podem garantir sucesso em todos os momentos devido ao Cloudflare atualizar frequentemente suas medidas de segurança. A maneira mais confiável de lidar com o Cloudflare é usar uma API de web scraping, como o Piloterr. Ela lida com todos os métodos de detecção do Cloudflare nos bastidores, permitindo que você se concentre na lógica do seu scraping sem se preocupar em contornar a proteção anti-bot.

O Piloterr funciona com todas as linguagens de programação. Você só precisa de uma única chamada de API para contornar o Cloudflare e recuperar os dados de que precisa.

Para ver como o Piloterr funciona, vamos usá-lo para acessar os Empregos do Indeed, um site fortemente protegido pelo Cloudflare.

Código em Python:

Python
# Instale o módulo requests se necessário
import requests

# URL do Indeed
url = 'https://www.indeed.com/jobs?q=senior+java+developer&l=berlin'
api_key = ''

# Parâmetros de requisição para a API do Piloterr
params = {
    'query': url,
    'wait_in_seconds': 10
}

# Enviando uma requisição GET para a API do Piloterr
response = requests.get(
    'https://piloterr.com/api/v2/website/rendering', 
    params=params, 
    headers={'x-api-key': api_key}
)

# Imprimindo o HTML bruto da página do Indeed
print(response.text)

Com esta requisição, você pode obter todos os empregos que têm a palavra-chave "Senior Java Developer" na localização "Berlim".

Confira a documentação para ver como configurar a requisição de scraping. Basta colar a URL alvo, adicionar um wait_in_seconds entre 5-20 segundos, e você poderá usar uma simples requisição HTTP para buscar empregos (e contornar o anti-bot do Cloudflare), raspar URLs e texto sem dores de cabeça.

Método 4: Raspar URL de Empresa no Indeed com Python

Se você está interessado em raspar dados de empresas no Indeed, o Piloterr oferece uma API de web scraping dedicada para tornar o processo simples e eficiente. Ao usar esta API, você pode contornar a proteção do Cloudflare sem problemas e obter dados estruturados em JSON sobre empresas no Indeed.

Caso de uso: raspar informações da empresa com Python

Para recuperar informações de uma empresa específica no Indeed, siga estas etapas:

  1. Escolha a Empresa: Encontre a URL da empresa no Indeed (por exemplo, https://indeed.com/cmp/Microsoft).
  2. Chamada da API: Use uma requisição GET para o endpoint dedicado do Piloterr para informações de empresas do Indeed.

Código em Python:

Python
import requests

# Defina a URL da API para informações da empresa
url = 'https://indeed.com/cmp/Microsoft'
api_key = ''

# Defina o endpoint da API e os parâmetros
api_endpoint = 'https://piloterr.com/api/v2/indeed/company/info'
params = {'query': url}

# Envie a requisição GET com a chave da API
response = requests.get(api_endpoint, params=params, headers={'x-api-key': api_key})

# Imprima a resposta JSON contendo os dados da empresa
print(response.json())

Resposta:

JSON
{
    "founded": 1975,
    "revenue": "over-$10B (USD)",
    "website": "http://www.microsoft.com/",
    "industry": "Information Technology",
    "logo_url": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/96x96/88813b3f866a5b58c9685073e3b87e05",
    "company_url": "https://indeed.com/cmp/Microsoft",
    "description": "There’s work, and then there’s your life’s work...",
    "headquarter": "One Microsoft Way Redmond, Washington 98052-6399",
    "staff_range": "over-10000",
    "company_name": "Microsoft",
    "dynamic_sections": {...},
    "similar_companies": {...}
}
  1. Processar o JSON: A resposta incluirá as informações da empresa no formato JSON, facilitando a análise do texto e a incorporação em suas aplicações.

Ao usar este endpoint, você economiza tempo, pois a resposta já está estruturada em JSON, permitindo uma integração suave com sua lógica de scraping sem a necessidade de analisar HTML bruto.

Nota: Não contém URLs e empregos, este endpoint da API foca em informações da empresa. Alguns campos na resposta JSON podem ser null se a informação não estiver disponível ou se o Indeed tiver restringido o acesso a certos dados. Certifique-se de que seu código Python lide com esses casos para evitar possíveis erros no processamento de dados.

Usar este endpoint economiza tempo, pois a resposta já está estruturada em JSON, permitindo uma integração suave com sua lógica de scraping sem a necessidade de analisar texto em HTML bruto. Consulte a documentação do Piloterr para opções adicionais para otimizar suas requisições, como especificar o tempo de espera em segundos, parâmetros de busca ou ajustar os cabeçalhos do user-agent para melhorar a qualidade da resposta.

Com o Piloterr, você também pode raspar listagens de empregos diretamente dos perfis de empresas no Indeed, como esta URL: indeed.com/cmp/Google/jobs. O Raspador de Empregos do Indeed permite extrair dados valiosos de empregos, incluindo título do emprego, descrição do texto, nome da empresa, localização, salário, avaliações, tipo de emprego e muito mais.

Raspar dados de empresas do Indeed

Aqui estão alguns casos de uso valiosos:

1. Análise e Benchmarking de Salários / usando os dados de salários das listagens de empregos, você pode:

  • Comparar compensações entre diferentes cargos e localizações
  • Acompanhar tendências salariais para posições específicas
  • Ajudar candidatos a negociar melhores pacotes

Por exemplo, a partir dos dados, podemos ver que os salários de Engenheiro de Software da Microsoft variam significativamente com base na localização e no nível de experiência.

2. Inteligência do Mercado de Trabalho / os dados fornecem insights sobre:

  • Títulos de emprego em alta e sua demanda (por exemplo, a Microsoft tem 339 posições de Desenvolvimento de Software)
  • Distribuição geográfica ou localização de oportunidades (por exemplo, Redmond, WA tem 438 vagas)
  • Tendências de contratação e áreas de foco das empresas

3. Planejamento de Carreira / os dados estruturados de títulos de emprego podem ser usados para:

  • Mapear trajetórias de progressão na carreira
  • Identificar habilidades necessárias para avanço
  • Comparar cargos entre empresas (por exemplo, Gerente de Programa Sênior vs. Gerente de Projeto)

4. Análise da Cultura da Empresa / usando os dados de avaliações e classificações:

  • Analisar a satisfação no local de trabalho (a classificação geral da Microsoft é 4.2)
  • Comparar equilíbrio entre vida pessoal e profissional entre empresas
  • Avaliar valores da empresa e experiência dos funcionários

5. Preparação para Entrevistas / os dados de entrevistas fornecem:

  • Insights sobre a duração do processo ("cerca de duas semanas")
  • Níveis de dificuldade (classificados como "MÉDIO")
  • Perguntas comuns de entrevistas e experiências para um emprego
  • Feedback de entrevistas específicas por localização

6. Inteligência Competitiva / as empresas podem:

  • Monitorar padrões de contratação de concorrentes
  • Comparar benefícios e compensações para um emprego
  • Acompanhar a expansão para novos mercados ou tecnologias
  • Analisar empresas similares em seu setor

Esses dados podem ser particularmente valiosos para profissionais de RH, candidatos a emprego e analistas de negócios que buscam tomar decisões baseadas em dados sobre emprego e tendências da força de trabalho.

Método 5: Usando alternativas ao cache do Google

Embora o Google não ofereça mais acesso a páginas em cache, você ainda pode visualizar versões arquivadas de muitos sites por meio de serviços como WebCite e Internet Archive. Esses sites fornecem snapshots de páginas da web, permitindo que você acesse conteúdo de sites protegidos sem visitar diretamente seu domínio ou passar pelo CDN do Cloudflare.

Como Scrapear o Indeed.com (2)

Para usar arquivos quando outros métodos falharem, siga estas etapas:

  • Verifique a disponibilidade e atualidade dos dados: Certifique-se de que os dados arquivados estejam presentes e sejam recentes o suficiente para atender às suas necessidades. Avaliar a relevância é crucial.
  • Avalie o nível de segurança: Considere se a segurança do arquivo é inferior à do site original. Isso pode influenciar a segurança e a integridade dos dados extraídos.

Se essas condições forem atendidas, explore o arquivo do site alvo para ver se uma versão em cache está acessível.

Método 6: Raspar títulos de emprego para posições de desenvolvedor com Python

Se você precisa automatizar o processo de recuperação de sugestões de títulos de emprego relacionados a "desenvolvedor", pode usar um script simples para interagir com o endpoint de autocomplete do Indeed. Isso pode ajudá-lo a reunir uma lista de títulos relevantes frequentemente associados a funções de desenvolvedor, fornecendo insights sobre posições similares ou relacionadas.

Você pode usar o seguinte script em Python para raspar e analisar o texto, extraindo apenas as sugestões de títulos de emprego relevantes:

Python
import httpx

def get_job_title_suggestions(query="cto"):
    url = "https://autocomplete.indeed.com/api/v0/suggestions/cmp-what-with-top-companies"
    params = {
        "country": "US",
        "language": "en",
        "count": 10,
        "counts": 10,
        "formatted": 1,
        "query": query
    }

    response = httpx.get(url, params=params)
    if response.status_code == 200:
        suggestions = [item['suggestion'] for item in response.json() if item['suggestion'] != 'null']
        return suggestions
    else:
        return []

# Recuperar títulos de emprego relacionados a CTO
cto_suggestions = get_job_title_suggestions("cto")
print(cto_suggestions)

Este script envia uma requisição HTTP para a API do Indeed e imprime uma lista de títulos de emprego sugeridos relacionados a "desenvolvedor". Este endpoint do Indeed atualmente não é protegido pelo Cloudflare, mas pode vir a ser.

Nota: Também é possível usar a mesma abordagem para recuperar sugestões de localização do Indeed, fornecendo uma lista de cidades relevantes. Isso pode ser particularmente útil ao desenvolver uma aplicação web para ajudar a evitar resultados nulos para o cliente, preenchendo campos de busca com opções válidas.

O Indeed permite a raspagem de empregos?

A legalidade da raspagem de dados é regida por leis de propriedade intelectual e proteção de dados. O Código de Propriedade Intelectual regula a extração de dados em termos de uso, quantidade e intenção. Aqui está um resumo do que geralmente é permitido:

  1. Extração de Dados Não Substanciais: Extrair uma pequena porção não substancial de dados publicamente disponíveis para uso privado é tipicamente permitido. Essa abordagem garante que os usuários coletem apenas dados mínimos, o que não compromete o valor do banco de dados.
  2. Uso Privado, Não Comercial: Extrair dados em maior escala pode ser aceitável se for para fins pessoais e não comerciais. No entanto, todos os direitos de propriedade intelectual e privacidade devem ser respeitados.
  3. Uso Acadêmico e de Pesquisa: Para fins educacionais ou de pesquisa, uma quantidade mais substancial de dados pode ser extraída. Esse uso é tipicamente não comercial e direcionado a um público limitado, como estudantes ou pesquisadores, o que minimiza o risco de infringir os termos da plataforma.

Conformidade com os termos do Indeed

Os Termos de Serviço do Indeed proíbem explicitamente atividades de scraping para uso comercial sem autorização. Eles restringem o uso de "bots, scripts ou APIs" para raspar dados de seu site, especialmente quando os dados são usados para fins competitivos, criação de perfis ou coleta massiva de dados.

Exemplo de cláusula: "Você concorda em não usar qualquer robô, aranha, raspador ou outros meios automatizados para acessar o site do Indeed para qualquer finalidade sem a permissão expressa por escrito do Indeed."

Violar esses termos pode resultar em ação legal e multas pesadas. O Indeed reserva-se o direito de buscar compensação por danos causados por scraping não autorizado, o que pode resultar em perdas financeiras e de reputação significativas para a empresa infratora.

Posso usar a API do Indeed para raspar postagens de emprego?

Desde junho de 2023, o Indeed oferece uma variedade de APIs para desenvolvedores gratuitamente. No entanto, essas APIs são destinadas principalmente ao lado de contratação da plataforma. Elas são úteis para integrar o Indeed com sistemas de rastreamento de candidatos, acompanhar conversões de candidatos ou agendar entrevistas, mas não são projetadas para fins de busca de empregos.

Anteriormente, a API de Empregos para Publicadores (incluindo as funções Get Job e Job Search) estava disponível especificamente para buscas de empregos, permitindo que os usuários coletassem dados como títulos de empregos, nomes de empresas, texto de descrição, localizações e horários de postagem. Desde que essas APIs foram descontinuadas, os usuários recorreram a alternativas, como um raspador do Indeed, para acessar dados semelhantes de busca de empregos.

Conclusão

Em conclusão, o raspador de dados no Indeed permite o acesso a uma riqueza de informações valiosas, incluindo empregos, empresas, localizações e outros detalhes úteis. Através dos métodos descritos, incluindo o uso de APIs de scraping como o Piloterr, é possível extrair dados de texto de uma simples URL enquanto se contorna proteções como o Cloudflare. Essa abordagem fornece às empresas insights críticos para aprimorar estratégias de recrutamento, análise competitiva e estudos de tendências de mercado. No entanto, é crucial cumprir os termos de serviço do Indeed para garantir o uso legal desses dados.

Mais para ler

Guias e notícias sobre web scraping, proxies e extração de dados.

Web Scraping

Migrando do NetNut: o que fazer após a desativação da rede

O Google tomou medidas contra a rede de proxies NetNut/Popa em conjunto com o FBI e a Lumen. Como repensar sua stack de scraping sem gerenciar proxies por conta própria.

Josselin Liebe
Josselin Liebe
Ler
Web Scraping

€17,99 na França, €29,99 na Alemanha: monitoramento de preços por país

Mesma referência no ERP, preços diferentes por país: promoções, moedas e sortimento variam de uma loja para outra. Modelo de dados, exemplos de API e um script em Python para monitoramento confiável de preços.

Josselin Liebe
Josselin Liebe
Ler
Web Scraping

Melhor Scraper para Leboncoin 2026

Piloterr vs Apify vs lobstr.io para scraping no Leboncoin em 2026. Preços, endpoints e dados de produtos verificados a partir de fontes oficiais em 29 de junho de 2026 — incluindo a lacuna legal entre scraping público e autenticado.

Josselin Liebe
Josselin Liebe
Ler

Pronto para começar?

Sua API de web scraping está a um clique. Comece com +500 créditos, sem infraestrutura para configurar, sem proxies para gerenciar e sem cartão de crédito necessário.

  • +500 créditos
  • Sem cartão de crédito
  • Todos os endpoints incluídos