本文實例講述了Python requests庫用法。分享給大家供大家參考,具體如下:
requests是Python中一個第三方庫,基于 urllib,采用 Apache2 Licensed 開源協議的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。接下來將記錄一下requests的使用:
安裝
要使用requests
庫必須先要安裝:
pip install requests
創建請求
通過requests
庫發出一個請求非常簡單,首先我們先導入requests
庫:
import requests
現在我們嘗試創建一個請求,用來獲取百度的網頁信息:
result = requests.get('http://www.baidu.com/')
現在我們獲取到了一個Response對象result,我們可以從這個對象中獲得所有我們需要的所有信息。剛剛的栗子是使用的GET請求,接下來將使用requests庫進行POST請求:
result = requests.post('http://www.baidu.com/',data={key:value})
很簡單對吧?那么其他HTTP請求呢:PUT、DELETE、HEAD和OPTIONS呢?
result = requests.put('http://www.baidu.com/',data={key,value})result = requests.head('http://www.baidu.com/')result = requests.delete('http://www.baidu.com/')result = requests.options('http://www.baidu.com/')
在URL中傳遞參數
你經常想要在URL的查詢字符串中發送某種數據。如果你手動構建網址,那么這個數據會在問號后作為網址中的鍵值對,例如https://www.baidu.com/s?wd=requests。請求允許你使用params關鍵字參數將這些參數作為字符串字典提供。舉個栗子,你想傳遞name=zhangsan并且age=18到https://www.baidu.com/s,你可以這樣寫:
data = {"name":"zhangsan","age":18}result = requests.get("https://www.baidu.com/s",params=data)
此時我們打印一下URL,發現該URL已經被正確編碼:
print result.url # https://www.baidu.com/s?name=zhangsan&age=18
也可以傳遞一個列表進去:
data = {"name":"zhangsan","favorite":["football","basketball"]}result = requests.get("https://www.baidu.com/s",params=data)print result.url # https://www.baidu.com/s?name=zhangsan&favorite=football&favorite=basketball
響應內容
在上面的例子可以知道,我們每次請求之后都會返回一個對象,我們可以從此對象中獲取響應內容:
result = requests.get("https://api.github.com/events")print result.text # [{"id":"6924608641","type":"PushEvent",...}]
二進制響應內容
print result.content # b'[{"id":"6924656608","type":"CreateEvent",...}]'
JSON格式的響應內容,如果解碼失敗,result.json()將會引發異常
新聞熱點
疑難解答