"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Lição Como trabalhar com APIs e Web Scraping para automação de RH

Lição Como trabalhar com APIs e Web Scraping para automação de RH

Publicado em 2024-11-05
Navegar:163

Lesson  Working with APIs and Web Scraping for HR Automation

Bem-vindo de volta à nossa série Python from 0 to Hero! Até agora, aprendemos como manipular dados e usar bibliotecas externas poderosas para tarefas relacionadas à folha de pagamento e sistemas de RH. Mas e se você precisar buscar dados em tempo real ou interagir com serviços externos? É aí que APIs e web scraping entram em ação.

Nesta lição, abordaremos:

  1. O que são APIs e por que são úteis.
  2. Como interagir com APIs REST usando a biblioteca de solicitações do Python.
  3. Como aplicar técnicas de web scraping para extrair dados de sites.
  4. Exemplos práticos, como obter taxas de impostos em tempo real para folha de pagamento ou extrair dados de benefícios de funcionários de um site.

Ao final desta lição, você será capaz de automatizar a recuperação de dados externos, tornando seus sistemas de RH mais dinâmicos e orientados a dados.


1. O que são APIs?

Uma API (Application Programming Interface) é um conjunto de regras que permite que diferentes aplicativos de software se comuniquem entre si. Em termos mais simples, permite interagir com outro serviço ou banco de dados diretamente do seu código.

Por exemplo:

  • Você pode usar uma API para buscar taxas de impostos em tempo real para cálculos de folha de pagamento.
  • Você pode integrar uma API de software de RH para extrair dados de funcionários diretamente para seu sistema.
  • Ou você pode usar uma API meteorológica para saber quando oferecer benefícios especiais aos funcionários com base em condições climáticas extremas.

A maioria das APIs usa um padrão chamado REST (Representational State Transfer), que permite enviar solicitações HTTP (como GET ou POST) para acessar ou atualizar dados.


2. Usando a biblioteca de solicitações para interagir com APIs

A biblioteca de solicitações do Python facilita o trabalho com APIs. Você pode instalá-lo executando:

pip install requests

Fazendo uma solicitação básica de API

Vamos começar com um exemplo simples de como buscar dados de uma API usando uma solicitação GET.

import requests

# Example API to get public data
url = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url)

# Check if the request was successful (status code 200)
if response.status_code == 200:
    data = response.json()  # Parse the response as JSON
    print(data)
else:
    print(f"Failed to retrieve data. Status code: {response.status_code}")

Neste exemplo:

  • Usamos a função requests.get() para buscar dados da API.
  • Se a solicitação for bem-sucedida, os dados serão analisados ​​como JSON e poderemos processá-los.

Exemplo de aplicação de RH: busca de dados fiscais em tempo real

Digamos que você queira obter taxas de impostos em tempo real para fins de folha de pagamento. Muitos países fornecem APIs públicas para taxas de impostos.

Para este exemplo, simularemos a busca de dados de uma API fiscal. A lógica seria semelhante ao usar uma API real.

import requests

# Simulated API for tax rates
api_url = "https://api.example.com/tax-rates"
response = requests.get(api_url)

if response.status_code == 200:
    tax_data = response.json()
    federal_tax = tax_data['federal_tax']
    state_tax = tax_data['state_tax']

    print(f"Federal Tax Rate: {federal_tax}%")
    print(f"State Tax Rate: {state_tax}%")

    # Use the tax rates to calculate total tax for an employee's salary
    salary = 5000
    total_tax = salary * (federal_tax   state_tax) / 100
    print(f"Total tax for a salary of ${salary}: ${total_tax:.2f}")
else:
    print(f"Failed to retrieve tax rates. Status code: {response.status_code}")

Este script pode ser adaptado para funcionar com uma API de taxa de imposto real, ajudando você a manter seu sistema de folha de pagamento atualizado com as taxas de imposto mais recentes.


3. Web Scraping para coletar dados

Embora as APIs sejam o método preferido para buscar dados, nem todos os sites as fornecem. Nesses casos, web scraping pode ser usado para extrair dados de uma página da web.

A biblioteca

BeautifulSoup do Python, junto com as solicitações, facilita o web scraping. Você pode instalá-lo executando:

pip install beautifulsoup4

Exemplo: Extração de dados de benefícios de funcionários de um site

Imagine que você deseja extrair dados sobre benefícios dos funcionários do site de RH de uma empresa. Aqui está um exemplo básico:

import requests
from bs4 import BeautifulSoup

# URL of the webpage you want to scrape
url = "https://example.com/employee-benefits"
response = requests.get(url)

# Parse the page content with BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')

# Find and extract the data you need (e.g., benefits list)
benefits = soup.find_all("div", class_="benefit-item")

# Loop through and print out the benefits
for benefit in benefits:
    title = benefit.find("h3").get_text()
    description = benefit.find("p").get_text()
    print(f"Benefit: {title}")
    print(f"Description: {description}\n")

Neste exemplo:

  • Solicitamos o conteúdo de uma página da web usando requests.get().
  • O objeto BeautifulSoup analisa o conteúdo HTML.
  • Em seguida, extraímos os elementos específicos nos quais estamos interessados ​​(por exemplo, títulos e descrições de benefícios) usando find_all().

Esta técnica é útil para coletar dados relacionados a RH, como benefícios, ofertas de emprego ou referências salariais na web.


4. Combinando APIs e Web Scraping em aplicativos de RH

Vamos juntar tudo e criar um miniaplicativo que combina o uso de API e web scraping para um cenário de RH do mundo real: calculando o custo total de um funcionário.

Bem:

  • Use uma API para obter taxas de impostos em tempo real.
  • Raspe uma página da web para obter custos adicionais de benefícios para funcionários.

Exemplo: Calculadora de Custo Total de Funcionários

import requests
from bs4 import BeautifulSoup

# Step 1: Get tax rates from API
def get_tax_rates():
    api_url = "https://api.example.com/tax-rates"
    response = requests.get(api_url)

    if response.status_code == 200:
        tax_data = response.json()
        federal_tax = tax_data['federal_tax']
        state_tax = tax_data['state_tax']
        return federal_tax, state_tax
    else:
        print("Error fetching tax rates.")
        return None, None

# Step 2: Scrape employee benefit costs from a website
def get_benefit_costs():
    url = "https://example.com/employee-benefits"
    response = requests.get(url)

    if response.status_code == 200:
        soup = BeautifulSoup(response.content, 'html.parser')
        # Let's assume the page lists the monthly benefit cost
        benefit_costs = soup.find("div", class_="benefit-total").get_text()
        return float(benefit_costs.strip("$"))
    else:
        print("Error fetching benefit costs.")
        return 0.0

# Step 3: Calculate total employee cost
def calculate_total_employee_cost(salary):
    federal_tax, state_tax = get_tax_rates()
    benefits_cost = get_benefit_costs()

    if federal_tax is not None and state_tax is not None:
        # Total tax deduction
        total_tax = salary * (federal_tax   state_tax) / 100

        # Total cost = salary   benefits   tax
        total_cost = salary   benefits_cost   total_tax
        return total_cost
    else:
        return None

# Example usage
employee_salary = 5000
total_cost = calculate_total_employee_cost(employee_salary)

if total_cost:
    print(f"Total cost for the employee: ${total_cost:.2f}")
else:
    print("Could not calculate employee cost.")

Como funciona:

  1. A função get_tax_rates() recupera taxas de impostos de uma API.
  2. A função get_benefit_costs() coleta uma página da web para obter o custo dos benefícios dos funcionários.
  3. A função calcula_total_employee_cost() calcula o custo total combinando salário, impostos e benefícios.

Este é um exemplo simplificado, mas demonstra como você pode combinar dados de diferentes fontes (APIs e web scraping) para criar aplicativos de RH mais dinâmicos e úteis.


Melhores práticas para web scraping

Embora web scraping seja poderoso, existem algumas práticas recomendadas importantes a serem seguidas:

  1. Respeite o robots.txt do site: alguns sites não permitem a raspagem e você deve verificar o arquivo robots.txt antes da raspagem.
  2. Use intervalos apropriados entre solicitações: Evite sobrecarregar o servidor adicionando atrasos entre solicitações usando a função time.sleep().
  3. Evite extrair dados confidenciais ou protegidos por direitos autorais: sempre certifique-se de não violar nenhuma regra legal ou ética ao extrair dados.

Conclusão

Nesta lição, exploramos como interagir com serviços externos usando APIs e como extrair dados de sites por meio de web scraping. Essas técnicas abrem possibilidades infinitas para integração de dados externos em seus aplicativos Python, especialmente em um contexto de RH.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/dazevedo/lesson-7-working-with-apis-and-web-scraping-for-hr-automation-lmj?1 Se houver alguma violação, entre em contato com study_golang @163.com excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3