"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > درس العمل مع واجهات برمجة التطبيقات وتجريد الويب لأتمتة الموارد البشرية

درس العمل مع واجهات برمجة التطبيقات وتجريد الويب لأتمتة الموارد البشرية

تم النشر بتاريخ 2024-11-05
تصفح:979

Lesson  Working with APIs and Web Scraping for HR Automation

مرحبًا بك مرة أخرى في سلسلة بايثون من 0 إلى البطل ! لقد تعلمنا حتى الآن كيفية التعامل مع البيانات واستخدام مكتبات خارجية قوية للمهام المتعلقة بأنظمة الرواتب والموارد البشرية. ولكن ماذا لو كنت بحاجة إلى جلب بيانات في الوقت الفعلي أو التفاعل مع الخدمات الخارجية؟ وهنا يأتي دور واجهات برمجة التطبيقات وتجميع الويب.

سنتناول في هذا الدرس ما يلي:

  1. ما هي واجهات برمجة التطبيقات ولماذا هي مفيدة.
  2. كيفية التفاعل مع REST APIs باستخدام مكتبة طلبات بايثون.
  3. كيفية تطبيق تقنيات استخراج البيانات من الويب لاستخراج البيانات من مواقع الويب.
  4. أمثلة عملية، مثل جلب معدلات الضرائب في الوقت الفعلي لكشوف المرتبات أو استخراج بيانات مزايا الموظفين من موقع الويب.

بحلول نهاية هذا الدرس، ستتمكن من أتمتة عملية استرجاع البيانات الخارجية، مما يجعل أنظمة الموارد البشرية لديك أكثر ديناميكية واعتمادًا على البيانات.


1. ما هي واجهات برمجة التطبيقات؟

واجهة برمجة التطبيقات API (واجهة برمجة التطبيقات) هي مجموعة من القواعد التي تسمح لتطبيقات البرامج المختلفة بالتواصل مع بعضها البعض. بعبارات أبسط، فهو يتيح لك التفاعل مع خدمة أو قاعدة بيانات أخرى مباشرة من التعليمات البرمجية الخاصة بك.

على سبيل المثال:

  • يمكنك استخدام واجهة برمجة التطبيقات لجلب معدلات الضرائب في الوقت الفعلي لحسابات الرواتب.
  • يمكنك التكامل مع واجهة برمجة تطبيقات برنامج الموارد البشرية لسحب بيانات الموظف مباشرة إلى نظامك.
  • أو يمكنك استخدام واجهة برمجة تطبيقات الطقس لمعرفة متى يتم تقديم مزايا خاصة للموظفين بناءً على الظروف الجوية القاسية.

تستخدم معظم واجهات برمجة التطبيقات معيارًا يسمى REST (نقل الحالة التمثيلية)، والذي يسمح لك بإرسال طلبات HTTP (مثل GET أو POST) للوصول إلى البيانات أو تحديثها.


2. استخدام مكتبة الطلبات للتفاعل مع واجهات برمجة التطبيقات

تسهل مكتبة طلبات بايثون العمل مع واجهات برمجة التطبيقات. يمكنك تثبيته عن طريق تشغيل:

pip install requests

تقديم طلب واجهة برمجة التطبيقات الأساسية

لنبدأ بمثال بسيط لكيفية جلب البيانات من واجهة برمجة التطبيقات باستخدام طلب 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}")

في هذا المثال:

  • نستخدم وظيفة request.get() لجلب البيانات من واجهة برمجة التطبيقات.
  • إذا نجح الطلب، فسيتم تحليل البيانات بتنسيق JSON، ويمكننا معالجتها.

مثال على تطبيق الموارد البشرية: جلب البيانات الضريبية في الوقت الحقيقي

لنفترض أنك تريد جلب معدلات الضرائب في الوقت الفعلي لأغراض الرواتب. توفر العديد من البلدان واجهات برمجة التطبيقات العامة لمعدلات الضرائب.

في هذا المثال، سنقوم بمحاكاة جلب البيانات من واجهة برمجة التطبيقات الضريبية. سيكون المنطق مشابهًا عند استخدام واجهة برمجة التطبيقات الفعلية.

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

يمكن تكييف هذا البرنامج النصي للعمل مع واجهة برمجة تطبيقات معدل الضريبة الحقيقية، مما يساعدك على تحديث نظام كشوف المرتبات الخاص بك بأحدث معدلات الضرائب.


3. تجريف الويب لجمع البيانات

على الرغم من أن واجهات برمجة التطبيقات هي الطريقة المفضلة لجلب البيانات، إلا أنه لا توفرها جميع مواقع الويب. في هذه الحالات، يمكن استخدام تجميع الويب لاستخراج البيانات من صفحة الويب.

مكتبة

Python BeautifulSoup، بالإضافة إلى الطلبات، تجعل عملية تجريف الويب أمرًا سهلاً. يمكنك تثبيته عن طريق تشغيل:

pip install beautifulsoup4

مثال: استخراج بيانات مزايا الموظف من موقع ويب

تخيل أنك تريد استخراج بيانات حول مزايا الموظفين من موقع الموارد البشرية الخاص بالشركة. إليك مثال أساسي:

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

في هذا المثال:

  • نطلب محتوى صفحة الويب باستخدام request.get().
  • يقوم كائن BeautifulSoup بتوزيع محتوى HTML.
  • نقوم بعد ذلك باستخراج العناصر المحددة التي نهتم بها (على سبيل المثال، عناوين الفوائد وأوصافها) باستخدام find_all().

هذه التقنية مفيدة لجمع البيانات المتعلقة بالموارد البشرية مثل المزايا أو إعلانات الوظائف أو معايير الرواتب من الويب.


4. الجمع بين واجهات برمجة التطبيقات وتجريد الويب في تطبيقات الموارد البشرية

فلنجمع كل شيء معًا وننشئ تطبيقًا صغيرًا يجمع بين استخدام واجهة برمجة التطبيقات واستخراج الويب لسيناريو الموارد البشرية في العالم الحقيقي: حساب التكلفة الإجمالية للموظف.

حسنًا:

  • استخدم واجهة برمجة التطبيقات للحصول على معدلات الضرائب في الوقت الفعلي.
  • احذف صفحة ويب لتغطية تكاليف مزايا الموظفين الإضافية.

مثال: حاسبة إجمالي تكلفة الموظف

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() باسترداد معدلات الضرائب من واجهة برمجة التطبيقات.
  2. تقوم وظيفة get_benefit_costs() باستخراج صفحة ويب لتكلفة مزايا الموظفين.
  3. تحسب الدالة Calculate_total_employee_cost() التكلفة الإجمالية من خلال الجمع بين الراتب والضرائب والمزايا.

هذا مثال مبسط ولكنه يوضح كيف يمكنك دمج البيانات من مصادر مختلفة (واجهات برمجة التطبيقات وتجميع الويب) لإنشاء تطبيقات موارد بشرية أكثر ديناميكية وإفادة.


أفضل الممارسات لتخريب الويب

على الرغم من أن تجريف الويب يعد أمرًا قويًا، إلا أن هناك بعض أفضل الممارسات المهمة التي يجب اتباعها:

  1. احترم ملف robots.txt الخاص بموقع الويب: بعض مواقع الويب لا تسمح باستخراج البيانات، ويجب عليك التحقق من ملف robots.txt الخاص بها قبل استخراج المعلومات.
  2. استخدم الفواصل الزمنية المناسبة بين الطلبات: تجنب التحميل الزائد على الخادم عن طريق إضافة تأخيرات بين الطلبات باستخدام وظيفة time.sleep().
  3. تجنب استخراج البيانات الحساسة أو المحمية بحقوق الطبع والنشر: تأكد دائمًا من عدم انتهاك أي قواعد قانونية أو أخلاقية عند استخراج البيانات.

خاتمة

في هذا الدرس، اكتشفنا كيفية التفاعل مع الخدمات الخارجية باستخدام واجهات برمجة التطبيقات وكيفية استخراج البيانات من مواقع الويب من خلال تجميع الويب. تفتح هذه التقنيات إمكانيات لا حصر لها لدمج البيانات الخارجية في تطبيقات 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