1. 程式人生 > 實用技巧 >python之requests庫的使用

python之requests庫的使用

一、什麼是requests?

Requests是用Python語言編寫的,基於urllib3來改寫的,採用Apache2 Licensed 來源協議的HTTP庫。

二、安裝requests

>pip3 install requests

二、基本用法

#各種請求方式:常用的就是requests.get()和requests.post()
>>> import requests
>>> r = requests.get('https://xxx.com/events')
>>> r = requests.post('http://xxx/post
', data = {'key':'value'}) >>> r = requests.put('http://xxx/put', data = {'key':'value'}) >>> r = requests.delete('http://xxx/delete') >>> r = requests.head('http://xxx/get') >>> r = requests.options('http://xxx/get') #註冊例項:post請求 header ={"X-Media-Type": "xxx", "User-Agent": "
Chrome/75.0.3770.100","Content-Type": "application/json;charset=UTF-8"} register_url="http://xxx/futureloan/member/register" register_data={"mobile_phone": "18602510131", "pwd": "12345678", "reg_name": ""} register_res = requests.post(register_url,json.dumps(register_data),headers=header) print("text解析結果",register_res.text)
print("響應狀態碼:",type(register_res.status_code),register_res.status_code) print("響應頭:",type(register_res.headers),register_res.headers) print("cookies:",type(register_res.cookies),register_res.cookies) print("請求url:",type(register_res.url),register_res.url) print("請求歷史:",type(register_res.history),register_res.history) #登入例項:帶引數的get請求,使用字典來儲存引數 header ={"X-Media-Type": "xxx", "User-Agent": "Chrome/75.0.3770.100","Content-Type": "application/json;charset=UTF-8"} login_url="http://xxx/futureloan/member/login" login_data={"mobile_phone": "18602510131", "pwd": "12345678"} login_res = requests.get(login_url,data=json.dumps(login_data),headers=header) print("text解析結果",login_res.text) print("json解析結果",login_res.json())

#呼叫json()方法,就可以將返回結果是JSON格式的字串轉化為字典。
#但需要注意的是,如果返回的結果不是JSON 格式,便會出現解析錯誤,丟擲json.decoder.JSONDecoderError異常。

三、升級用法

requests.request(method,url,**kwargs)
method:請求方式,對應get/put/post等七種
:介面請求的url連結
:訪問引數,共13個
method:請求方式
r =requests.request('GET',url,**kwargs)
r = requests.request('POST', url, **kwargs)
r = requests.request('PUT', url, **kwargs)
r = requests.request('delete', url, **kwargs)

**kwargs:關鍵字引數,必須以字典形式(key:value)傳參,為可選項
1. params : 字典或位元組序列,作為引數增加到url中
2. data : 字典、位元組序列或檔案物件,作為Request的內容
3. json : JSON格式的資料,作為Request的內容
4. headers : 字典,HTTP定製頭
5. cookies : 字典或CookieJar,Request中的auth : 元組支援HTTP認證功能
6. files : 字典型別,傳輸檔案
7. timeout : 設定超時時間,秒為單位
8. proxies : 字典型別,設定訪問代理伺服器,可以增加登入認證
9. allow_redirects : True/False,預設為True,重定向開關
10. stream : True/False,預設為True,獲取內容立即下載開關
11. verify : True/False,預設為True,認證SSL證書開關
12. cert : 本地SSL證書
13. auth : 元組,支援HTTP認證功能

#登入介面另一種寫法
login_res = requests.request("get",login_url,data=json.dumps(login_data),headers=header)