CodeGym /課程 /Python SELF TW /網路操作

網路操作

Python SELF TW
等級 23 , 課堂 2
開放

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())

為了更好地理解 GETPOSTPUTDELETE 請求的本質,你需要閱讀有關網路結構、互聯網、網頁和 HTTP 的講義。這些內容將在不久的將來呈現給你。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION