requests的一些操作筆記

import requests,json
url = 'http://httpbin.org/get'
r = requests.get(url)
print(r.status_code,r.reason) # 200 ok
print(r.text)

s = requests.post('http://httpbin.org/post',data={'spam':1})
print(type(s.text)) # str類型
print((s.json())['form']) # {'spam': '1'}


headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) '
             'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
h = requests.get('http://httpbin.org/headers',headers=headers)
print("自定義headers請求:",h.json())


cookies = dict(userid='123',token='dsfsfsafdsa')
c = requests.get('http://httpbin.org/cookies',cookies=cookies)
print("帶cookies請求:",c.json()) # {'cookies': {'token': 'dsfsfsafdsa', 'userid': '123'}}


au = requests.get('http://httpbin.org/basic-auth/name/123456',auth=('name','123456'))
print('Basic-auth認證請求:',au.text) # '{\n  "authenticated": true, \n  "user": "name"\n}\n'
print('Basic-auth認證請求:',au.json()) # {'authenticated': True, 'user': 'name'}

#使用requests.Session對象請求
# 創建一個Session對象
rs = requests.Session()
# session對象會保存服務器返回的set-cookies頭信息裏面的內容
rs.get('http://httpbin.org/cookies/set/userid/123456')
rs.get('http://httpbin.org/cookies/set/token/XXXXXXXXXXX')
# 下一次請求會將本地所有的cookies信息自動添加到請求頭信息裏面
rs_ = rs.get('http://httpbin.org/cookies')
print('檢查session中的cookies',rs_.json()) # {'cookies': {'token': 'XXXXXXXXXXX', 'userid': '123456'}}

# 代理使用
print('不使用代理:',requests.get('http://httpbin.org/ip').json()) # {'origin': '114.242.33.20'}
# print('使用代理:',requests.get('http://httpbin.org/ip',proxies={'http':'110.243.30.16:9999'}).json())

# 設置延時,如果網址裏面的數字大於等於後面timeout的值則超過延時報錯
d = requests.get('http://httpbin.org/delay/4',timeout=5)
print("延時",d.text)


# 主動拋出狀態異常碼
bad_r = requests.get('http://httpbin.org/status/404')
print(bad_r.status_code) # 404
bad_r.raise_for_status() # 訪問的是404頁面所以會報異常

http://httpbin.org/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章