pós-título

O Web Scraping para anúncios de emprego é um atalho alternativo para quem procura emprego criar um banco de dados de vagas de emprego atuais. Randstad diz que a busca média de emprego pode durar de cinco a seis meses, desde quando uma solicitação é feita até que uma vaga seja preenchida. E se você tiver uma solução que possa reduzir seu fardo de navegar por todos os portais de emprego e escolher o certo que lhe convém? 

Este artigo o levará em uma viagem explicando como fazer na web scraping para anúncios de emprego. Então, você está no mercado de trabalho e tentando descobrir o melhor emprego. Mas você quer jogar mais esperto e não mais difícil. Por que não construir um raspador da web para coletar e analisar as ofertas de emprego para você. Uma vez definido, ele lhe fornecerá riqueza de dados em um formato bem arrumado, para que você não tenha que verificá-lo manualmente repetidas vezes. Vamos começar.

O que é a Web Scraping para anúncios de emprego?

Web scraping para anúncios de emprego é a solução que coleta automaticamente dados de vários portais de emprego e reduz seu tempo na busca de dados de cada site. Ter tal ferramenta que pode lhe fornecer um banco de dados completo de vagas de emprego simplificará sua tarefa através de múltiplas dobras. Tudo o que você tem que fazer é filtrar o que lhe convém e prosseguir com o processo de inscrição. 

Portanto, você está no mercado de trabalho e tentando descobrir o melhor emprego. Mas você quer jogar mais esperto e não mais difícil. Por que não construir um raspador da web para coletar e analisar as ofertas de emprego para você? Uma vez definido, ele lhe fornecerá riqueza de dados em um formato bem arrumado, para que você não tenha que verificá-lo manualmente repetidamente. Vamos começar.

[Isenção de responsabilidade! Muitos sites podem restringir o apagamento de dados de suas páginas. Os usuários podem estar sujeitos a questões legais dependendo de onde e como eles tentam extrair as informações. Portanto, é preciso ser extremamente cuidadoso ao olhar os sites que abrigam seus dados. Por exemplo, Facebook, Linked In e Craiglist às vezes se preocupam se os dados são eliminados de suas páginas. Portanto, se você quiser scrape, scrape por sua própria conta e risco].

Este será um artigo muito básico no qual veremos o básico da web scraping extraindo algumas informações úteis sobre empregos relacionados à "Data Science" do site indeed.com. Estaremos escrevendo um programa surpreendente que atualizará os trabalhos várias vezes manualmente. Algumas bibliotecas úteis que serão muito úteis durante a construção deste raspador são "pedidos" e "BeautifulSoup".

Entendendo a URL e a estrutura da página

Primeiro, vamos dar uma olhada na página de amostra que vamos extrair de fato

A forma como a URL é estruturada é significativa:

  • nota "q=" inicia a seqüência para o campo "o quê" na página, separando os termos de busca com "+" (ou seja, busca por "dados+scientista" empregos)
  • ao especificar o salário, ele será dividido por vírgulas no valor do salário, então o início do salário será precedido por %24 e depois o número antes da primeira vírgula, será então dividido por %2C e continuará com o resto do número (ou seja, %2420%2C000 = $20.000)
  • nota "&l=" começa a seqüência para a cidade de interesse, separando os termos de busca com "+" se a cidade for mais de uma palavra (ou seja, "Nova+York").
  • nota "&start=" anota o resultado da busca por onde você quer começar (ou seja, comece olhando para o 10º resultado)

Esta estrutura URL seria de grande ajuda à medida que continuamos construindo o raspador e coletando dados de várias páginas. 

Web Scraping para anúncios de emprego - Entendendo a URL e a estrutura da página

O cromo pode examinar a estrutura HTML da página clicando com o botão direito do mouse sobre ela e usando a opção de elemento de inspeção. Um menu aparecerá à direita, e também mostrará as tags dos elementos aninhados, e quando você colocar o cursor sobre esses elementos, ele destacará essa parte da tela.  

Web Scraping para anúncios de emprego

Para este artigo, suponho que você conheça o básico sobre HTML como tags, divs, etc., mas felizmente você não precisa saber tudo. Você só precisa entender a estrutura da página e a hierarquia dos diferentes componentes.

Começando com o Raspador

Agora analisamos a estrutura da página. Isto nos ajudará a construir código de acordo com essas informações para extrair os dados de nossa escolha. Comecemos primeiro pela importação de nossas bibliotecas. Note que aqui também estamos importando "tempo", o que será útil para não sobrecarregar o servidor do site quando scraping informações.

pedidos de importação
importação bs4
da bs4 importar BeautifulSoup
pandas de importação como pd
tempo de importação

Primeiramente, vamos direcionar a página única para retirar cada pedaço de informação desejada,

URL = "https://www.indeed.com/jobs?q=data+scientista+%2420%2C000&l=Novo+York&start=10".
#conduzindo uma solicitação da URL acima mencionada:
página = pedidos.get(URL)
#especificando o formato desejado de "página" usando o analisador html - isto permite que a pitão leia os vários componentes da página, em vez de tratá-la como uma cadeia longa.
sopa = BeautifulSoup(page.text, "html.parser")
#simpressão de sopa em um formato de árvore mais estruturado, que facilita a leitura
print(soup.prettify())

O uso do pretify facilita ter uma visão geral da codificação HTML da página e fornece uma saída como esta,

Web Scraping para anúncios de emprego - Código
Web Scraping para anúncios de emprego - Como Começar

 Agora todas as informações em nossa página de interesse estão em nossa variável "sopa". Temos que cavar mais no código para iterar através de várias tags e sub-tags para capturar as informações necessárias.

Obtendo Elementos Básicos de Dados

Cinco pontos-chave para cada anúncio de emprego são,

  1. Título do emprego.
  2. Nome da empresa.
  3. Localização.
  4. Salário.
  5. Resumo do trabalho.

Se dermos uma olhada na página, há 15 anúncios de emprego. Portanto, nosso código também deve gerar 15 itens diferentes. Entretanto, se o código fornecer menos do que isso, podemos voltar à página e ver o que não está sendo capturado.

Obtenção de título de emprego

As can be seen, the entirety of each job posting is under <div> tags, with an attribute “class” = “row result.”

Further, we could also see that job titles are under <a> tags, with the attribute “title = (title)”. One can see the value of the tag’s attribute with tag[“attribute”], so I can use it to find each posting’s job title.

Se fizermos um resumo, a função que vamos ver envolve as três etapas seguintes,

  1. Pulling out all the <div> tags with class including “row”.
  2. Identifying <a> tags with attribute “data-tn-element”:”jobTitle”
  3. For each of these <a> tags, find attribute values “title”
def extract_job_title_from_result(soup): 
  jobs = []
  for div in soup.find_all(name="div", attrs={"class":"row"}):
    for a in div.find_all(name="a", attrs={"data-tn-element":"jobTitle"}):
      jobs.append(a["title"])
  return(jobs)
extract_job_title_from_result(soup)

Este código produzirá uma saída como esta,

Web Scraping para anúncios de emprego - Obter título de emprego

Obtenção do nome da empresa

Getting company names can be a bit tricky because most of them are appearing in <span> tags, with “class”:” company”.  They are also housed in <span> tags with “class”:” result-link-source”.

Estaremos utilizando declarações if/else para extrair as informações da empresa de cada um desses locais. A fim de remover os espaços brancos ao redor dos nomes da empresa quando eles forem emitidos, usaremos inputting.strip() no final.

def extract_company_from_result(soup): 
 companies = []
 for div in soup.find_all(name="div", attrs={"class":"row"}):
   company = div.find_all(name="span", attrs={"class":"company"})
   if len(company) > 0:
    for b in company:
     companies.append(b.text.strip())
   else:
    sec_try = div.find_all(name="span", attrs={"class":"result-link-source"})
    for span in sec_try:
      companies.append(span.text.strip())
 return(companies)
 
extract_company_from_result(soup)
Web Scraping para anúncios de emprego - Obter nome da empresa

Obtendo localização

Locations are located under the <span> tags. Span tags are sometimes nested within each other, such that the location text may sometimes be within “class”:”location” attributes, or nested in “itemprop”:”addressLocality”. However a simple for loop can examine all span tags for text and retrieve the necessary information.

def extract_location_from_result(soup): 
  locations = []
  spans = soup.findAll('span', attrs={'class': 'location'})
  for span in spans:
    locations.append(span.text)
  return(locations)
extract_location_from_result(soup)
Web Scraping para anúncios de emprego - Obter localização

Obtenção de salário

O salário é a parte mais desafiadora a ser extraída dos postos de trabalho. A maioria das postagens não publica informações salariais, enquanto outras que o fazem, podem haver vários lugares para escolher isso. Portanto, temos que escrever um código que possa retirar vários salários de vários lugares, e se nenhum salário for encontrado, precisamos criar um valor "Nada Encontrado" para qualquer trabalho que não contenha salário. 

Some salaries are under <nobr> tags, while others are under <div> tags, “class”:”sjcl” and are under separate div tags with no attributes. Try/except statement can be helpful while extracting this information. 

def extract_salary_from_result(soup): 
  salaries = []
  for div in soup.find_all(name="div", attrs={"class":"row"}):
    try:
      salaries.append(div.find('nobr').text)
    except:
      try:
        div_two = div.find(name="div", attrs={"class":"sjcl"})
        div_three = div_two.find("div")
        salaries.append(div_three.text.strip())
      except:
        salaries.append("Nothing_found")
  return(salaries)
extract_salary_from_result(soup)
Web Scraping para anúncios de emprego - Obter salário

Resumo de como conseguir um emprego

O trabalho final é obter o resumo do trabalho. Entretanto, não é possível obter os resumos de trabalho para cada posição em particular porque eles não estão incluídos no HTML de uma determinada página do Indeed. Podemos obter algumas informações sobre cada emprego a partir do que é fornecido. Podemos usar Selenium para este fim.

But let’s first try this using python. Summaries are located under <span> tags. Span tags are nested within each other such that the location text is within “class”:” location” tags or nested in “itemprop”:” adressLocality”. However, using a simple for loop can examine all span tags for text to retrieve the necessary information.

Web Scraping para Anúncios de Emprego - Obter Resumo de Emprego

Perguntas mais freqüentes

1. Por que é necessário scrape detalhes do trabalho?

Existem portais de empregos suficientes que podem notificá-lo sobre os empregos que corresponderam ao seu perfil. Ainda assim, ter uma solução de emprego scraping lhe dará uma lista completa de empregos e a descrição como um banco de dados útil. Isto lhe permitirá ter uma visão melhor de todas as oportunidades de emprego em um só lugar. 

2. Como um proxy pode ajudar nos detalhes do trabalho em scraping ? 

A Web scraping geralmente terá certos desafios como blocos IP, geo-blocos e velocidade limitada. Scraping empregos de portais de emprego também terão tais desafios. Para contornar todos estes problemas, os endereços proxy podem ajudá-lo com endereços IP do local desejado e garantir o anonimato.

3. Quais são as bibliotecas python necessárias para scrape detalhes do trabalho ?

Pedidos, BeautifulSoup, e Pandas são bibliotecas python bastante comuns para scrape dados relacionados a empregos de sites da Web. A biblioteca de pedidos é a biblioteca python mais comumente utilizada para enviar pedidos da web, enquanto o BeautifulSoup é responsável pela análise dos dados, e a biblioteca Pandas ajudará com as operações de estrutura de dados. 

Artices relacionados

Como Scrape Twitter Usando Python

Como Scrape Instagram Usando Python

Como Scrape Reddit Usando Python

Envolvimento

Neste artigo, vimos o que é a web scraping e como ela pode ser útil em nossa vida diária, tomando um exemplo prático de scraping dados de trabalho de páginas da web do Indeed. Observe que os resultados obtidos podem ser diferentes destes, pois as páginas são dinâmicas, de modo que as informações continuam mudando com o tempo. 

A Web Scraping é uma técnica incrível se feita de forma correta e de acordo com suas exigências. Além disso, vimos os cinco aspectos importantes de cada anúncio de emprego e como extraí-los. Ao tentar este código por conta própria, você terá raspado os dados dos anúncios de emprego, e não precisará procurar os empregos manualmente, o que é incrível. A mesma técnica também pode ser aplicada a outras páginas da web, mas sua estrutura pode ser diferente. Portanto, é preciso otimizar seu código de acordo com isso. Mas todas as noções básicas são abordadas neste artigo, portanto, não haveria nenhuma dificuldade em scraping outras páginas também.

Se você está procurando por proxy serviços, não se esqueça de olhar para ProxyScrape residencial e premium proxies.