顯示具有 r.json() 標籤的文章。 顯示所有文章
顯示具有 r.json() 標籤的文章。 顯示所有文章

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  ,

兩者有些許的不同,

要稍微留意一下