2025年3月6日 星期四

Python 18 小時入門--第 18 小時:Python 自動化與爬蟲進階應用(Advanced Automation & Web Scraping)

 📌 第 18 小時:Python 自動化與爬蟲進階應用(Advanced Automation & Web Scraping)

Python 不僅可以用來寫應用程式,還能用來 自動化重複性工作,如:

  • 網路爬蟲(Scraping)
  • 批量下載與資料擷取
  • 定時執行任務(Scheduling)
  • 批次處理檔案

本章將介紹:

  1. 使用 requests 爬取動態數據
  2. 使用 Selenium 爬取 JavaScript 生成的數據
  3. 批量下載圖片與檔案
  4. 定時執行任務(使用 schedule
  5. 批量處理 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 自動處理重複性工作,提升工作效率!🚀

沒有留言:

張貼留言