「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > HR Automation のための API と Web スクレイピングの使用に関するレッスン

HR Automation のための API と Web スクレイピングの使用に関するレッスン

2024 年 11 月 5 日に公開
ブラウズ:281

Lesson  Working with APIs and Web Scraping for HR Automation

Python 0 から Hero まで シリーズへようこそ!これまでのところ、給与および人事システムに関連するタスクでデータを操作し、強力な外部ライブラリを使用する方法を学びました。しかし、リアルタイム データを取得したり、外部サービスとやり取りしたりする必要がある場合はどうすればよいでしょうか?そこでAPIウェブスクレイピングが登場します。

このレッスンでは次の内容を取り上げます:

  1. API とは何か、そしてそれらが役立つ理由。
  2. Python のリクエスト ライブラリを使用して REST API を操作する方法。
  3. ウェブ スクレイピング技術を適用してウェブサイトからデータを抽出する方法。
  4. 給与計算のためのリアルタイムの税率の取得や、Web サイトからの従業員福利厚生データのスクレイピングなどの実用的な例。

このレッスンを終了するまでに、外部データの取得を自動化し、人事システムをより動的でデータ主導型にすることができるようになります。


1. API とは何ですか?

API (アプリケーション プログラミング インターフェイス) は、さまざまなソフトウェア アプリケーションが相互に通信できるようにする一連のルールです。簡単に言うと、コードから直接別のサービスやデータベースと対話できるようになります。

例えば:

  • API を使用して、給与計算用の リアルタイム税率を取得できます。
  • HR ソフトウェア API と統合して、従業員データをシステムに直接取り込むことができます。
  • または、気象 API を使用して、異常気象条件に基づいて従業員にいつ特別手当を提供するかを知ることもできます。

ほとんどの API は、REST (Representational State Transfer) と呼ばれる標準を使用します。これにより、HTTP リクエスト (GET や POST など) を送信してデータにアクセスしたり、データを更新したりできます。


2. リクエスト ライブラリを使用して API と対話する

Python のリクエスト ライブラリを使用すると、API を簡単に操作できます。次を実行してインストールできます:

pip install requests

基本的な API リクエストの作成

GET リクエストを使用して API からデータを取得する方法の簡単な例から始めましょう。

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

この例では:

  • requests.get() 関数を使用して API からデータを取得します。
  • リクエストが成功すると、データは JSON として解析され、処理できるようになります。

人事アプリケーションの例: リアルタイムの税金データの取得

給与計算のために、リアルタイムの税率を取得したいとします。多くの国が税率のパブリック API を提供しています。

この例では、税務 API からのデータの取得をシミュレートします。実際の API を使用する場合も、ロジックは同様になります。

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

このスクリプトは、実際の税率 API で動作するように調整でき、給与システムを最新の税率で最新の状態に保つことができます。


3. Webスクレイピングによるデータ収集

API はデータを取得するための推奨される方法ですが、すべての Web サイトが API を提供しているわけではありません。このような場合、ウェブ スクレイピングを使用してウェブページからデータを抽出できます。

Python の BeautifulSoup ライブラリとリクエストを使用すると、Web スクレイピングが簡単になります。次を実行してインストールできます:

pip install beautifulsoup4

例: Web サイトから従業員福利厚生データを収集する

会社の人事 Web サイトから 従業員福利厚生 に関するデータを収集したいと考えていると想像してください。基本的な例を次に示します:

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

この例では:

  • requests.get() を使用して Web ページのコンテンツをリクエストします。
  • BeautifulSoup オブジェクトは HTML コンテンツを解析します。
  • 次に、find_all() を使用して、関心のある特定の要素 (特典のタイトルや説明など) を抽出します。

この手法は、福利厚生、求人情報、給与ベンチマークなどの人事関連データを Web から収集する場合に役立ちます。


4. 人事アプリケーションでの API と Web スクレイピングの組み合わせ

すべてをまとめて、実際の人事シナリオ向けの API の使用と Web スクレイピングを組み合わせたミニアプリケーションを作成しましょう。従業員の総コストを計算します。

良い:

  • API を使用してリアルタイムの税率を取得します。
  • 追加の従業員福利厚生費のためにウェブページをスクレイピングします。

例: 総従業員コスト計算ツール

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

仕組み:

  1. get_tax_rates() 関数は、API から税率を取得します。
  2. get_benefit_costs() 関数は、従業員福利厚生費の Web ページを取得します。
  3. calculate_total_employee_cost() 関数は、給与、税金、福利厚生を組み合わせて総コストを計算します。

これは簡略化された例ですが、さまざまなソース (API と Web スクレイピング) からのデータを組み合わせて、より動的で有用な HR アプリケーションを作成する方法を示しています。


Webスクレイピングのベストプラクティス

Web スクレイピングは強力ですが、従うべき重要なベスト プラクティスがいくつかあります:

  1. ウェブサイトの robots.txt を尊重します: 一部のウェブサイトではスクレイピングが許可されていないため、スクレイピングする前に robots.txt ファイルを確認する必要があります。
  2. リクエスト間に適切な間隔を使用する: time.sleep() 関数を使用してリクエスト間に遅延を追加することで、サーバーの過負荷を回避します。
  3. 機密データや著作権で保護されたデータのスクレイピングを避ける: データをスクレイピングするときは、法的ルールや倫理的ルールに違反していないことを常に確認してください。

結論

このレッスンでは、APIを使用して外部サービスと対話する方法と、ウェブスクレイピングを通じてウェブサイトからデータを抽出する方法を学びました。これらのテクニックは、特に HR コンテキストにおいて、外部データを Python アプリケーションに統合するための無限の可能性を開きます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/dazevedo/lesson-7-working-with-apis-and-web-scraping-for-hr-automation-lmj?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3