"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Leçon Travailler avec les API et le Web Scraping pour l'automatisation des ressources humaines

Leçon Travailler avec les API et le Web Scraping pour l'automatisation des ressources humaines

Publié le 2024-11-05
Parcourir:959

Lesson  Working with APIs and Web Scraping for HR Automation

Bienvenue dans notre série Python de 0 à Hero ! Jusqu'à présent, nous avons appris à manipuler les données et à utiliser de puissantes bibliothèques externes pour les tâches liées aux systèmes de paie et de ressources humaines. Mais que se passe-t-il si vous avez besoin de récupérer des données en temps réel ou d'interagir avec des services externes ? C'est là que les API et le web scraping entrent en jeu.

Dans cette leçon, nous aborderons :

  1. Que sont les API et pourquoi elles sont utiles.
  2. Comment interagir avec les API REST à l'aide de la bibliothèque de requêtes de Python.
  3. Comment appliquer les techniques de web scraping pour extraire des données de sites Web.
  4. Exemples pratiques, tels que la récupération des taux d'imposition en temps réel pour la paie ou la récupération des données sur les avantages sociaux des employés à partir d'un site Web.

À la fin de cette leçon, vous serez en mesure d'automatiser la récupération de données externes, rendant ainsi vos systèmes RH plus dynamiques et axés sur les données.


1. Que sont les API ?

Une API (Application Programming Interface) est un ensemble de règles qui permettent à différentes applications logicielles de communiquer entre elles. En termes plus simples, il vous permet d'interagir avec un autre service ou une autre base de données directement à partir de votre code.

Par exemple:

  • Vous pouvez utiliser une API pour récupérer les taux d'imposition en temps réel pour les calculs de paie.
  • Vous pouvez intégrer une API de logiciel RH pour extraire les données des employés directement dans votre système.
  • Vous pouvez également utiliser une API météo pour savoir quand offrir des avantages spéciaux aux employés en fonction de conditions météorologiques extrêmes.

La plupart des API utilisent une norme appelée REST (Representational State Transfer), qui vous permet d'envoyer des requêtes HTTP (comme GET ou POST) pour accéder ou mettre à jour des données.


2. Utilisation de la bibliothèque de requêtes pour interagir avec les API

La bibliothèque de requêtes de Python facilite l'utilisation des API. Vous pouvez l'installer en exécutant :

pip install requests

Faire une requête API de base

Commençons par un exemple simple montrant comment récupérer des données à partir d'une API à l'aide d'une requête 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}")

Dans cet exemple :

  • Nous utilisons la fonction request.get() pour récupérer les données de l'API.
  • Si la demande aboutit, les données sont analysées au format JSON et nous pouvons les traiter.

Exemple d'application RH : récupération de données fiscales en temps réel

Disons que vous souhaitez récupérer les taux d'imposition en temps réel à des fins de paie. De nombreux pays proposent des API publiques pour les taux d'imposition.

Pour cet exemple, nous allons simuler la récupération de données à partir d'une API fiscale. La logique serait similaire lors de l'utilisation d'une API réelle.

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}")

Ce script peut être adapté pour fonctionner avec une API de taux d'imposition réel, vous aidant ainsi à maintenir votre système de paie à jour avec les derniers taux d'imposition.


3. Web Scraping pour collecter des données

Bien que les API soient la méthode privilégiée pour récupérer des données, tous les sites Web ne les proposent pas. Dans ces cas, le web scraping peut être utilisé pour extraire des données d'une page Web.

La bibliothèque

BeautifulSoup de Python, ainsi que les requêtes, facilitent le scraping Web. Vous pouvez l'installer en exécutant :

pip installe beautifulsoup4
pip install beautifulsoup4
Exemple : récupération des données sur les avantages sociaux des employés d'un site Web

Imaginez que vous souhaitiez récupérer des données sur les

avantages sociaux du site Web RH d'une entreprise. Voici un exemple simple :

demandes d'importation à partir de bs4 importer BeautifulSoup # URL de la page Web que vous souhaitez supprimer url = "https://exemple.com/employee-benefits" réponse = requêtes.get (url) # Analyser le contenu de la page avec BeautifulSoup soupe = BeautifulSoup (response.content, 'html.parser') # Recherchez et extrayez les données dont vous avez besoin (par exemple, liste des avantages) avantages = soupe.find_all("div", class_="avantage-item") # Parcourez et imprimez les avantages pour bénéficier des prestations : titre = bénéfice.find("h3").get_text() description = avantage.find("p").get_text() print(f"Avantage : {titre}") print(f"Description : {description}\n")
pip install beautifulsoup4
Dans cet exemple :

    Nous demandons le contenu d'une page Web à l'aide de request.get().
  • L'objet BeautifulSoup analyse le contenu HTML.
  • Nous extrayons ensuite les éléments spécifiques qui nous intéressent (par exemple, les titres et les descriptions des avantages) à l'aide de find_all().
Cette technique est utile pour collecter des données liées aux ressources humaines telles que les avantages sociaux, les offres d'emploi ou les références salariales à partir du Web.


4. Combiner les API et le Web Scraping dans les applications RH

Rassemblons tout et créons une mini-application qui combine l'utilisation de l'API et le web scraping pour un scénario RH réel : calculer le

coût total d'un employé.

Bien:

    Utilisez une API pour obtenir les taux d'imposition en temps réel.
  • Grattez une page Web pour connaître les coûts supplémentaires en matière d'avantages sociaux.
Exemple : Calculateur du coût total des employés

demandes d'importation à partir de bs4 importer BeautifulSoup # Étape 1 : Obtenez les taux d'imposition de l'API def get_tax_rates() : api_url = "https://api.example.com/tax-rates" réponse = requêtes.get (api_url) si réponse.status_code == 200 : tax_data = réponse.json() taxe_fédérale = données_taxes['taxe_fédérale'] état_taxe = données_taxes['état_taxe'] retourner fédéral_tax, state_tax autre: print("Erreur lors de la récupération des taux d'imposition.") retourner Aucun, Aucun # Étape 2 : Supprimez les coûts des avantages sociaux des employés d'un site Web def get_benefit_costs() : url = "https://exemple.com/employee-benefits" réponse = requêtes.get (url) si réponse.status_code == 200 : soupe = BeautifulSoup (response.content, 'html.parser') # Supposons que la page indique le coût mensuel des prestations Benefit_costs = Soup.find("div", class_="benefit-total").get_text() retourner float(benefit_costs.strip("$")) autre: print("Erreur lors de la récupération des coûts des prestations.") retourner 0,0 # Étape 3 : Calculer le coût total du personnel def calculate_total_employee_cost (salaire) : taxe_fédérale, state_tax = get_tax_rates() avantages_cost = get_benefit_costs() si Federal_tax n'est pas None et state_tax n'est pas None : # Déduction fiscale totale total_tax = salaire * (federal_tax state_tax) / 100 # Coût total = impôt sur les avantages salariaux total_cost = salaire Benefits_cost total_tax retourner coût_total autre: retourner Aucun # Exemple d'utilisation employé_salaire = 5000 total_cost = calculate_total_employee_cost (employee_salary) si coût_total : print(f"Coût total pour l'employé : ${total_cost:.2f}") autre: print("Impossible de calculer le coût des employés.")
pip install beautifulsoup4
Comment ça marche :

    La fonction get_tax_rates() récupère les taux d'imposition à partir d'une API.
  1. La fonction get_benefit_costs() récupère une page Web pour le coût des avantages sociaux.
  2. La fonction calculate_total_employee_cost() calcule le coût total en combinant le salaire, les impôts et les avantages sociaux.
Il s'agit d'un exemple simplifié mais montre comment vous pouvez combiner des données provenant de différentes sources (API et web scraping) pour créer des applications RH plus dynamiques et plus utiles.


Meilleures pratiques pour le web scraping

Bien que le web scraping soit puissant, il existe quelques bonnes pratiques importantes à suivre :

  1. Respectez le fichier robots.txt du site Web : certains sites Web n'autorisent pas le scraping, et vous devez vérifier leur fichier robots.txt avant de le scraper.
  2. Utilisez des intervalles appropriés entre les requêtes : évitez de surcharger le serveur en ajoutant des délais entre les requêtes à l'aide de la fonction time.sleep().
  3. Évitez de supprimer des données sensibles ou protégées par des droits d'auteur : assurez-vous toujours que vous ne violez aucune règle légale ou éthique lorsque vous supprimez des données.

Conclusion

Dans cette leçon, nous avons exploré comment interagir avec des services externes à l'aide des

API et comment extraire des données de sites Web via le web scraping. Ces techniques ouvrent des possibilités infinies pour intégrer des données externes dans vos applications Python, notamment dans un contexte RH.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/dazevedo/lesson-7-working-with-apis-and-web-scraping-for-hr-automation-lmj?1 En cas d'infraction, veuillez contacter study_golang @163.com supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3