2019年3月27日 星期三

利用 Requests 套件送出 HTTP請求


除了 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  ,

兩者有些許的不同,

要稍微留意一下





沒有留言: