實戰演練開始前,稍微來講解一下 Requests 的基本使用,當作是暖身。
記不記得之前有提過 HTTP 有不同的 Methods,而這些 Methods 分別對應不同的行為。
Methods??忘記了嗎?傳送門在此!
如果使用 Requests 套件要怎麼使用這些 Methods 來送出 HTTP Request 呢!?其實非常簡單。
範例如下:
GET
import requests
url = "https://www.example.com" # 舉例用 url
req_query = {"key1": "value1", "key2": ["value2", "value3"]}
r = requests.get(url, params=req_query)
有設定 query 組出來的 URL 會是這樣:
https://www.example.com?key1=value1&key2=value2&key2=value3
requests.get 的 params 就是 URL 中的 query。任何 URL 都可以擁有 query,所以 params 這個參數,不限於只能在 requests.get 這個 function 中使用
。
query?之前介紹的已經忘記了嗎?沒關係,在此附上傳送門。
POST
import requests
url = "https://www.example.com" # 舉例用 url
req_data = {"key":"value"}
r = requests.post(url, data=req_data)
data 這個參數就是將指定的資料包裝進 HTTP Message 的 Body 裡面。
這邊要注意 data 的預設資料格式是 form
,如果該 URL 只吃 JSON 的話要改成:
# 方法1:自己轉(記得要先 import json)
r = requests.post(url, data=json.dumps(req_data))
# 方法2:使用內建參數,直接代入
r = requests.post(url, json=req_data)
更詳細的講解可參考官方文件 - More complicated POST requests。
PUT
使用方法與 POST 雷同。
import requests
url = "https://www.example.com" # 舉例用 url
req_data = {"key":"value"}
r = requests.put(url, data=req_data)
PATCH
使用方法與 POST 雷同。
import requests
url = "https://www.example.com" # 舉例用 url
req_data = {"key":"value"}
r = requests.patch(url, data=req_data)
DELETE
import requests
url = "https://www.example.com" # 舉例用 url
r = requests.delete(url)
另外很少用到的 HEAD、OPTIONS 也有提供 function 操作:
import requests
url = "https://www.example.com" # 舉例用 url
r = requests.head(url)
r = requests.options(url)
以上就是 Requests 套件,傳送 HTTP Request 的方法,下一篇將介紹如何透過 Requests 存取 HTTP Response。
更多範例可以參考官方文件 - Make a Request