除了 Python 內建的模組 urllib2 可傳送HTTP 請求以外,
其他有許多套件可達到此功能,
今天就
利用 Requests 套件送出 HTTP請求
在程式設計前,
要先匯入模組,
才能在 Python 使用
import requests
常用的HTTP請求有 GET 與 POST,
底下為一個最簡單的GET請求:
requests.get("網址url")
在程式設計時候,
可取得狀態碼判別該HTTP請求是否成功,
status _code = 200 表示請求成功,
如果狀態碼介於400~500之間,
表示請求錯誤
可藉由 if-else 來判別請求成功或失敗,
r = requests.get("網址url")
if r.status_code == 200
print("成功")
除此之外,
也可以傳送帶有參數的 GET 請求
例如:
req_params = { 'key1': 'value1','key2':'value2' }
r = requests.get ("網址url", params=req_params)
這相當於在瀏覽器打上
網址url?key1=value1&key2=value2
GET請求加上參數的方法屬於URL參數,
也就是從網址可看到的,
POST則是以HTML表單方式送出,
一個簡單的POST請求長這個樣子:
req_params = { 'key1': 'value1','key2':'value2' }
r = requests.post ("網址url", data=req_params)
送出要求之後,
伺服器可針對要求進行回應,
而取得回應資料也很簡單,
可透過
r.text
取得,
除此以外,
可利用
r.content
取得沒有解碼的二進制內容,
或者可以
r.raw
取得最原始的回應內容
伺服器若透過JSON方式回傳資料,
可利用
r.json()
解析JSON資料,
r.text取得的回應資料型態為str ,
r.json()取得的回應資料型態為dict ,
兩者有些許的不同,
要稍微留意一下