iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
佛心分享-IT 人自學之術

當 Python 初學者遇到 AI:30 天人機協作學習手記系列 第 20 篇

[Day 20] 進階第六關:與世界連線!認識 API、JSON 格式與 Requests 外掛

  • 分享至 

  • xImage
  •  

今日對話:如何讓 Python 自動從網路抓資料?

我的 Prompt(提示詞):

「我常常聽到 API、JSON 這兩個詞,它們到底是什麼意思?請用白話文舉例說明。另外,如果我想用 Python 連到某個網站抓資料下來,最推薦用什麼方法?請給我一個簡單可執行的實作範例。」

AI 導師的建議與拆解

AI 導師給了兩個非常傳神的比喻:

  1. API (Application Programming Interface):
    就像是餐廳的「服務生」。
    你(客戶端/程式)坐在桌子前看菜單。
    你向「服務生(API)」點餐(發送 Request 請求)。
    服務生跑去「廚房(伺服器/資料庫)」拿餐點。
    最後服務生把做好的餐點(Response 回應)端到你桌上。
    你不需要知道廚房裡面是怎麼做菜的,你只需要跟服務生(API)溝通就好!

  2. JSON (JavaScript Object Notation):
    就像是國際通用語言。
    網路上的伺服器和瀏覽器可能來自不同語言(Python, Java, Swift...),為了能溝通,大家都用 JSON 這種文字格式來傳遞資料。
    最棒的是:JSON 的結構跟我們之前學過的 Python字典 (Dictionary)幾乎長得一模一樣!包含鍵 (Key) 與值 (Value),看一眼就能上手。

3.requests套件:
Python 內建的網路連線模組比較繁瑣,而 requests 就是全世界 Python 開發者公認最好用的網路外掛工具,就像是幫 Python 裝上了自動下載器!

實作筆記與驗證

步驟一:安裝 requests 外掛
在 VS Code 終端機 (Terminal) 輸入:

bash
pip install requests

步驟二:建立 day20.py檔案,發送第一個網路請求!
這裡使用一個公開免費的「隨機笑話 API」來測試連線:

python
import requests

#1. 決定我們要呼叫的 API 網址 (服務生拿菜單的地方)
url = "https://official-joke-api.appspot.com/random_joke"

print("📡 正在透過網路向伺服器發送請求...")

#2. 發送 GET 請求 (就像在網址列按下 Enter)
response = requests.get(url)

#3. 檢查狀態碼 (Status Code)
#200 代表連線成功!404 代表找不到網頁,500 代表伺服器壞掉
if response.status_code == 200:
print("✅ 連線成功!狀態碼:200 OK\n")

#4. 把傳回來的 JSON 格式直接轉成 Python 字典 (dict)
data = response.json()

print(f"抓取到的資料型別是:{type(data)}")
print("-" * 30)
print("=== 今日隨機英文笑話 ===")
print(f"問:{data['setup']}")
print(f"答:{data['punchline']}")
print("-" * 30)

else:
print(f"❌ 連線失敗,伺服器回應狀態碼:{response.status_code}")

今日小結

今天我們正式解鎖了網路連線技能!學會 API 與 JSON 串接後,可以開始嘗試調用網路上數以萬計的免費 API。


上一篇
[Day 19] 進階第五關:讓資料永久保存!檔案讀寫操作與 with 語法
系列文
當 Python 初學者遇到 AI:30 天人機協作學習手記 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言