Ir para o conteúdo

Seu guia passo a passo para extrair dados do Even

Ei! Quer extrair listas de empregos do Even? Você veio ao lugar certo.

O Even é um dos maiores mecanismos de busca de empregos na web, com mais de 250 milhões visitantes únicos por mês. É um enorme conjunto de dados sobre ofertas de emprego, salários, perfis de empresas e muito mais.

Infelizmente, as APIs do Even não expõem totalmente todos esses dados. É aí que entra o web scraping.

Neste guia, orientarei você passo a passo sobre como raspar o Even usando Python. Compartilharei trechos de código que você pode usar, junto com dicas para raspar com precisão e evitar ser bloqueado.

Também abordarei como automatizar a raspagem para execução diária, semanal ou mensal. Dessa forma, você pode manter os dados da sua lista de empregos atualizados automaticamente!

No final, você estará aproveitando as ofertas de emprego do Even como um profissional. Vamos cavar!

Por que raspar listas de empregos de fato?

Antes de sujarmos as mãos com algum código Python, vamos falar sobre porque você pode querer extrair dados do Even em primeiro lugar.

Aqui estão apenas algumas idéias:

  • Pesquisa de mercado – Analise as tendências de anúncios de emprego para identificar habilidades ou funções crescentes em demanda. Na verdade, tem dados sobre milhões de aberturas em todos os setores.

  • Inteligencia competitiva – Veja quais salários e benefícios as empresas estão oferecendo para funções semelhantes. Útil ao avaliar seus próprios pacotes de remuneração.

  • Motores de busca de emprego – Crie painéis de empregos personalizados usando dados do Even filtrados para palavras-chave ou locais específicos.

  • Ferramentas de recrutamento – Rastreie novas vagas que correspondam às habilidades dos candidatos para revelar empregos relevantes.

  • Análise de currículo – Extraia palavras-chave e habilidades das descrições de cargos para fornecer sugestões para melhorar currículos e cartas de apresentação.

Esses são apenas alguns exemplos – com dados estruturados ricos sobre ofertas de emprego, as possibilidades são infinitas!

Agora vamos ver como realmente extrair esses dados usando web scraping.

Antes de mergulhar na codificação, quero abordar rapidamente a legalidade do web scraping. Eu sei que algumas pessoas têm preocupações aqui.

A resposta curta é: extrair dados públicos do Even é perfeitamente legal na maioria dos casos, desde que você siga algumas regras básicas:

  • Acesse apenas páginas públicas – não tente extrair dados ou logins privados de usuários.

  • Não sobrecarregue os servidores do Even fazendo scraping de forma muito agressiva. Siga práticas educadas de rastreamento.

  • Cumpra os Termos de Serviço do Even. Eles não proíbem especificamente o web scraping.

  • Evite copiar grandes trechos de texto literalmente para respeitar os direitos autorais. Parafrasear está ok.

  • Não republice quaisquer dados privados, pessoais ou confidenciais extraídos.

Se você seguir essas diretrizes de bom senso, o web scraping Even para dados públicos de listas de empregos é legalmente permitido na maioria dos países.

Claro, eu ainda recomendo consultar um advogado se você tiver alguma dúvida, pois as leis variam. Mas você pode superar o Even com confiança, desde que permaneça ético!

Ok, vamos mergulhar na parte divertida – código real!

Raspando listagens do Even com Python

Ao copiar sites grandes como o Even, Python é uma ótima escolha graças a bibliotecas como pedidos, Sopa linda e Selênio.

Vou orientá-lo em um script para:

  • Extraia listas de empregos que correspondam a pesquisas de palavras-chave e localização

  • Analise detalhes como cargos, salários e descrições

  • Automatize a paginação para buscar todas as listagens em várias páginas

Vamos começar!

Bibliotecas de importação

Nós usaremos pedidos para buscar páginas, Sopa linda para análise, Horário para acelerar, e Pandas para armazenar dados:

import requests
from bs4 import BeautifulSoup
import time
import pandas as pd

Pedidos e BeautifulSoup são todos vocês clientes precisar. Mas o Pandas ajuda a gerenciar os dados, enquanto o Time limita as solicitações.

Definir parâmetros de pesquisa

Primeiro, vamos definir quais anúncios de empregos queremos. Especifique palavras-chave, localização e outros filtros:

keywords = "Remote Software Engineer"
location = "United States" 
salary_min = 100000

O objetivo é empregos remotos de software com altos salários nos EUA. Ajuste aos critérios desejados.

Buscar página de resultados de pesquisa

Com os parâmetros definidos, solicitaremos a URL, passando nossas palavras-chave e localização:

BASE_URL = "https://www.indeed.com/jobs?" 

params = {
  ‘q‘: keywords,
  ‘l‘: location,
  ‘minSalary‘: salary_min,
  ‘remotejob‘: ‘remote‘ # Filter remote jobs  
}

print(f‘Fetching job listings for {keywords} in {location}...‘)

res = requests.get(BASE_URL, params=params)
res.raise_for_status() # Raise exception for 4xx/5xx

Isso realiza a consulta de pesquisa inicial, filtrando por nossas palavras-chave e parâmetros.

Analisar resultados com BeautifulSoup

A seguir, analisaremos o HTML da página de resultados de pesquisa para extrair dados de listagem de alto nível:

soup = BeautifulSoup(res.text, ‘html.parser‘)

listings = [] # List to store listings

for div in soup.find_all(‘div‘, class_=‘job_seen_beacon‘):

  title = div.find(‘h2‘).text.strip()

  company = div.find(‘span‘, class_=‘companyName‘).text.strip()

  location = div.find(‘div‘, class_=‘companyLocation‘).text.strip()

  # Append listing data    
  listings.append({
    ‘title‘: title,
    ‘company‘: company, 
    ‘location‘: location
  })

Aqui localizamos cada listagem div, pegue os campos-chave como título e empresa e armazene em nosso listings Lista.

Lidar com paginação

Na verdade, divide os resultados em várias páginas. Precisaremos iterar cada um:

# Track page number 
current_page = 0

while True:

  # Increment page
  current_page += 1 

  print(f‘Scraping page {current_page}...‘)

  # Build URL for next page
  next_page_url = BASE_URL + f‘&start={current_page*10}‘  

  # Fetch page HTML
  res = requests.get(next_page_url, params=params)

  # Parse HTML
  soup = BeautifulSoup(res.text, ‘html.parser‘)   

  # Return if last page
  if not soup.find(‘a‘, {‘aria-label‘: ‘Next‘}):
    print(‘Reached last page!‘)
    break

  # Extract listings
  for div in soup.find_all(...):
    # Extract listing data

  # Sleep to throttle requests  
  time.sleep(3) 

print(f‘Scraped {len(listings)} listings‘)

Aqui, incrementamos continuamente o número da página, buscamos a próxima página, extraímos as listagens e fazemos um loop até chegar à última página.

Adicionando um curta time.sleep() o acelerador ajuda a evitar sobrecarregar os servidores do Even.

Detalhes da listagem de raspagem

Até agora extraímos dados de alto nível, como títulos e empresas. Para obter detalhes como salários e descrições, coletaremos o URL de cada listagem:

from selenium import webdriver

driver = webdriver.Chrome()

# Loop through listings
for listing in listings:

  print(f‘Getting details for {listing["title"]}‘)

  # Load listing URL
  url = listing[‘url‘]  
  driver.get(url)

  # Extract key fields
  desc = driver.find_element_by_id(‘jobDescriptionText‘).text
  salary = driver.find_element_by_class_name(‘salary-snippet‘).text

  listing[‘desc‘] = desc
  listing[‘salary‘] = salary

  # Sleep to throttle
  time.sleep(2)

driver.quit()  

Aqui, o Selenium fornece um navegador completo para renderizar páginas com muito JavaScript. Carregamos cada URL e extraímos campos adicionais como descrição e salário.

Dica Pro: Considere usar um serviço de proxy para evitar bloqueios de IP ao usar o Selenium em escala.

E é isso! Com essas etapas, você pode obter milhares de listas de empregos do Even automaticamente.

O resultado final são dados de trabalho estruturados que você pode analisar ou exportar para ferramentas como o Excel. Vejamos alguns exemplos a seguir.

O que você pode fazer com dados extraídos do Even?

Agora que podemos extrair as listagens do Even, o que podemos realmente fazer com esses dados?

Aqui estão apenas algumas idéias:

Exportar para Excel para análise

df = pandas.DataFrame(listings)
df.to_excel(‘indeed_listings.xlsx‘, index=False)

O Pandas facilita a exportação de resultados para Excel. Isso permite filtragem poderosa, tabelas dinâmicas e fórmulas.

Na verdade, dados no Excel

Você pode analisar tendências em locais, salários, habilidades e muito mais.

Crie bancos de dados de busca de empregos

import sqlite3

# Connect to SQLite database
conn = sqlite3.connect(‘jobs.db‘)

# Create table
conn.execute(‘‘‘
  CREATE TABLE jobs (
    title TEXT,
    company TEXT, 
    description TEXT,
    salary REAL  
  );
‘‘‘)

# Insert listings into database
for listing in listings:
  conn.execute("""
    INSERT INTO jobs VALUES (
      ?, ?, ?, ?
    )""", (listing[‘title‘], listing[‘company‘], 
            listing[‘desc‘], listing[‘salary‘]))

conn.commit()
conn.close()

SQLite fornece um banco de dados simples para armazenar listagens para pesquisa personalizada. Integre-se ao Flask para construir seu próprio quadro de empregos!

Listagens relevantes por e-mail para candidatos

import smtplib
from email.message import EmailMessage

# Connect to SMTP server 
smtp = smtplib.SMTP(‘smtp.domain.com‘)

for listing in listings:

  # Check if listing matches candidate skills  

  if match:

    msg = EmailMessage()
    msg[‘Subject‘] = f‘New job for you - {listing["title"]}‘  
    msg[‘From‘] = ‘[email protected]‘
    msg[‘To‘] = ‘[email protected]‘
    msg.set_content(listing[‘desc‘])

    # Send listing to candidate
    smtp.send_message(msg)

smtp.quit()

O Python torna mais fácil enviar automaticamente por e-mail aos candidatos novas listagens que correspondam às suas habilidades e interesses.

Esta é apenas uma pequena amostra – com dados de milhões de listagens, as possibilidades são infinitas!

Agora vamos ver como executar esse raspador automaticamente.

Agendando raspagens diárias de fato

Embora raspar o Even em tempo real seja útil, ainda mais valioso é configurar raspagens automatizadas e programadas para manter seus dados atualizados.

Aqui estão duas boas opções para executar o scraper em uma programação recorrente fixa:

cron Jobs

Uma maneira simples de automatizar scripts Python é o cron, um utilitário padrão do Linux.

Adicione uma entrada como esta para ser executada diariamente às 8h:

0 8 * * * python /home/user/indeedScraper.py

Você pode agendar recorrências complexas. Mas o cron não possui relatórios se os arranhões falharem.

Plataformas de raspagem

Para agendamento e automação mais robustos, recomendo usar uma plataforma de scraping dedicada como Escamoso or Apificar.

Eles fornecem automação de navegador e proxy para lidar com CAPTCHAs, blocos e JavaScript. E eles têm agendamento fácil de cron jobs integrado.

Você também recebe alertas por e-mail, análises de desempenho e opções de integração. Eles realmente eliminam a dor de cabeça da automação!

Aqui está uma comparação rápida:

cron JobsPlataformas de raspagem
PreçosGratuitoPlanos pagos
Proxies e navegadores sem cabeçaPrecisa de código personalizadoRecursos incluídos
SchedulerRecorrência básicaopções avançadas
Monitoramento e alertasnenhumE-mails e painel
Armazenamento de resultadosManuseio manualArmazenamento e exportações integrados

Para sites grandes e complexos como o Even, recomendo usar uma plataforma dedicada. A confiabilidade e os recursos adicionais compensam o custo ao fazer scraping em escala.

Vamos recapitular

Neste guia você aprendeu:

  • Sua marca scraping Even é útil para pesquisas de mercado, busca de emprego e ferramentas de recrutamento.

  • Como extrair listagens imitando consultas de pesquisa em Python.

  • Melhores práticas como limitar solicitações e usar proxies para evitar bloqueios.

  • Como analisar detalhes como salários e descrições das páginas de listagem.

  • Opções de automação como cron e plataformas de scraping dedicadas para manter seus dados atualizados.

Os exemplos de código acima devem fornecer um modelo para começar a extrair seus próprios dados do Even. Sinta-se à vontade para ajustá-lo e desenvolvê-lo de acordo com seu caso de uso!

Apenas lembre-se de respeitar os Termos de Serviço do Even, evitar raspagem muito agressiva e seguir uma boa higiene de raspagem na web para permanecer no lado certo da lei.

Espero que este guia tenha lhe dado uma visão geral abrangente de como raspar o Even de maneira eficaz usando Python. Automatizar essas etapas permite que você aproveite o incrível acervo de dados de listas de empregos do Even.

Deixe-me saber se você tem alguma dúvida! Fico sempre feliz em conversar mais sobre as práticas recomendadas de web scraping.

Boa sorte com seu projeto de raspagem do Even!

Junte-se à conversa

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *