3.1 模組 requests
在 Python 中,為了進行基本的網路操作,有一個叫做 requests 的函式庫。它提供了一個方便的介面,讓你能輕鬆地送出 HTTP 請求並獲得回應。
這個函式庫不是隨 Python 一起附帶的,所以在使用之前,你需要透過套件管理器來安裝它。
打開你的終端機並輸入:
pip install requests
安裝完函式庫後,你可以在你的專案中使用 requests 模組。例如,以下是如何取得你的外部 IP 地址:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # 顯示回應的狀態碼
print(response.json()) # 顯示 JSON 回應
我們向服務 (網站) ip.jsontest.com 發送了一個請求,該服務返回一個包含提出請求的 IP 地址的 JSON 物件。這個請求和回應的過程只需要一行,非常方便。其他行只是打印伺服器的回應。
在上面的範例中,我們調用了 get() 方法,下面我會介紹這個方法和 requests 物件的其他方法。
3.2 方法列表
requests 物件有各種方法來應對不同情境,準確地說,每一種 HTTP 請求類型都有對應的方法。
| 方法 | 描述 |
|---|---|
requests.get() |
送出 GET 請求 以從伺服器獲取資料。 |
requests.post() |
送出 POST 請求 以向伺服器發送資料。 |
requests.put() |
送出 PUT 請求 以更新伺服器上的資料。 |
requests.delete() |
送出 DELETE 請求 以刪除伺服器上的資料。 |
requests.head() |
送出 HEAD 請求 以獲取回應標頭而不包含資料主體。 |
requests.options() |
送出 OPTIONS 請求 以獲取伺服器支持的方法與參數。 |
requests.patch() |
送出 PATCH 請求 以對伺服器上的資料進行部分更新。 |
requests.request() |
主要的方法,用於送出各類型的 HTTP 請求。 |
下面我們來看看其中一些最基本的方法。
3.3 送出 GET 請求 和 POST 請求
GET 請求 通常只包含 URL,或者可能包含附加的參數字串。
1. 送出簡單的 GET 請求
GET 請求 用於從伺服器獲取資料。必填參數是要發送請求的 URL。
範例:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # 顯示回應的狀態碼
print(response.json()) # 顯示 JSON 回應
2. 送出帶有參數的 GET 請求
URL 也可能包含其他參數,以 key=value&key2=value2&… 的形式組成字串。
在這個例子中,參數被傳遞為字典形式並賦予變數 params:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. 送出 POST 請求
POST 請求 可以包含請求主體:文字、JSON,甚至圖片。
範例:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 送出 PUT 請求 和 DELETE 請求
1. 送出 PUT 請求
PUT 請求 用於更新伺服器上的資料。
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. 送出 DELETE 請求
DELETE 請求 用於從伺服器刪除資料。
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
為了更好地理解 GET、POST、PUT 和 DELETE 請求的本質,你需要閱讀有關網路結構、互聯網、網頁和 HTTP 的講義。這些內容將在不久的將來呈現給你。
GO TO FULL VERSION