歡迎回到我們的Python從0到英雄系列!到目前為止,我們已經學習如何操作資料並使用強大的外部函式庫來執行與工資和人力資源系統相關的任務。但是,如果您需要取得即時數據或與外部服務互動怎麼辦?這就是 API 和 網頁抓取 發揮作用的地方。
在本課中,我們將介紹:
在本課程結束時,您將能夠自動化外部資料檢索,使您的 HR 系統更加動態和資料驅動。
API(應用程式介面)是一組允許不同軟體應用程式相互通訊的規則。簡而言之,它允許您直接從程式碼與另一個服務或資料庫互動。
例如:
大多數 API 使用名為 REST(表述性狀態傳輸)的標準,它允許您發送 HTTP 請求(如 GET 或 POST)來存取或更新資料。
Python 的 requests 函式庫可以輕鬆使用 API。您可以透過運行來安裝它:
pip install requests
讓我們從一個簡單的範例開始,了解如何使用 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}")
在此範例中:
假設您想要取得即時稅率以用於薪資核算。許多國家提供了稅率的公共 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 搭配使用,以協助您將薪資系統保持在最新的稅率。
雖然 API 是獲取資料的首選方法,但並非所有網站都提供它們。在這些情況下,網頁抓取可用於從網頁中提取資料。
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")
在此範例中:
此技術對於從網路收集與人力資源相關的資料(例如福利、職位發布或薪資基準)非常有用。
讓我們將所有內容放在一起,創建一個結合 API 使用和 Web 抓取的迷你應用程序,用於真實的 HR 場景:計算員工的總成本。
我們會:
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.")
This is a simplified example but demonstrates how you can combine data from different sources (APIs and web scraping) to create more dynamic and useful HR applications.
While web scraping is powerful, there are some important best practices to follow:
In this lesson, we explored how to interact with external services using APIs and how to extract data from websites through web scraping. These techniques open up endless possibilities for integrating external data into your Python applications, especially in an HR context.
以上是課程 使用 API 和 Web 抓取實現 HR 自動化的詳細內容。更多資訊請關注PHP中文網其他相關文章!