📌 第 18 小時:Python 自動化與爬蟲進階應用(Advanced Automation & Web Scraping)
Python 不僅可以用來寫應用程式,還能用來 自動化重複性工作,如:
- 網路爬蟲(Scraping)
- 批量下載與資料擷取
- 定時執行任務(Scheduling)
- 批次處理檔案
本章將介紹:
- 使用
requests
爬取動態數據 - 使用
Selenium
爬取 JavaScript 生成的數據 - 批量下載圖片與檔案
- 定時執行任務(使用
schedule
) - 批量處理 Excel 檔案
🔹 1. 使用 requests
爬取動態數據
requests
可用來抓取 JSON API 或靜態網頁。
🟢 下載 JSON API
import requests
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
data = response.json()
print(data)
📌 適用於 API 服務,回傳 JSON 格式的數據。
🟢 爬取網頁 HTML
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text) # 取得標題
📌 適用於靜態 HTML 爬取,如新聞標題、商品資訊。
🔹 2. 使用 Selenium
爬取 JavaScript 生成的數據
有些網站的數據 由 JavaScript 動態加載,requests
無法直接爬取,需使用 Selenium
。
🟢 安裝 Selenium
pip install selenium
並下載 ChromeDriver:點此下載
🟢 自動開啟瀏覽器
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.python.org")
print(driver.title) # 取得網頁標題
driver.quit()
📌 Selenium
可讓 Python 自動操作瀏覽器,適合爬取需要登入的網站。
🟢 自動填寫表單
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.google.com")
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python 自動化", Keys.RETURN) # 輸入並按 Enter
driver.quit()
📌 適用於模擬登入、查詢資料、批量輸入數據。
🔹 3. 批量下載圖片與檔案
requests
可用於自動下載圖片或檔案。
🟢 批量下載圖片
import os
url = "https://www.example.com/image.jpg"
response = requests.get(url)
with open("image.jpg", "wb") as file:
file.write(response.content)
print("下載完成!")
📌 適用於爬取網路圖片,如表情包、壁紙等。
🔹 4. 定時執行任務(使用 schedule
)
有時我們希望 每隔一段時間自動執行某個任務(如自動備份)。
🟢 安裝 schedule
pip install schedule
🟢 每 10 秒執行一次任務
import schedule
import time
def job():
print("執行自動化任務...")
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
📌 適用於定時發送 Email、爬蟲、定期報告等。
🔹 5. 批量處理 Excel 檔案
我們可以使用 pandas
自動處理 Excel 合併多個檔案 或 格式轉換。
🟢 合併多個 Excel
import pandas as pd
import os
files = ["data1.xlsx", "data2.xlsx"]
dfs = [pd.read_excel(f) for f in files]
merged_df = pd.concat(dfs) # 合併
merged_df.to_excel("merged.xlsx", index=False)
📌 適用於處理財務報表、考試成績、自動整理 Excel 數據。
📌 第 18 小時小結
✅ 使用 requests
進行網頁爬取,獲取 JSON 或 HTML
✅ 使用 Selenium
爬取 JavaScript 生成的內容,可模擬瀏覽器操作
✅ 批量下載圖片或檔案,自動化整理數據
✅ 使用 schedule
設定定時任務,每隔一定時間執行腳本
✅ 批量處理 Excel 檔案,如合併報表、格式轉換
學完這一章,你已掌握 Python 進階自動化與爬蟲技術,現在可以利用 Python 自動處理重複性工作,提升工作效率!🚀
沒有留言:
張貼留言