Requests库:python中的“浏览器”,基于urllib的HTTP库
一、Requests库入门示例
requests库入门案例及使用步骤
二、Requests请求方法常用参数
resp = requests.请求方法(url='URL地址', params={k:v}, headers={k:v}, data={k:v}, json={k:v}, cookies='cookie数据'(如:令牌))
对比Postman我们填写的参数可以更好理解,对应着请求方式,URL,请求参数,请求头,请求体。
案例:发送POST请求
import requests
# 发送 post 登录请求,指定 url、请求头、请求体,获取响应结果
resp = requests.post(url="http://ihrm-test.itheima.net/api/sys/login",
# headers={"Content-Type": "application/json"}, 可以不写,json和data指明了请求体的数据类型:表单和json
json={"mobile": "13800000002", "password": "123456"})
# 打印响应结果 print(resp.json())
三、请求携带Cookie
1.常规方式
从requests的响应结果中提取出cookies,后续操作请求中携带此cookies
# 发送获取验证码请求
resp_v = requests.get(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=verify&r=0.21519623710645064")
# 从 获取验证码的响应结果,提取 cookie
my_cookie = resp_v.cookies
2.Session自动管理Cookie
因为Cookie中的数据,都是Session传递的。因此,Session 可以直接自动管理cookie。
#创建session对象
session = requests.Session()
#使用session对象去发送请求,不用携带设置cookies参数
resp=session.get(url,headers,params,data,json)
案例:借助session重新实现上述TPshop商城登录,并获取“我的订单”页面数据。
实现步骤:
- 创建一个Session实例。
- 使用Session实例,调get方法,发送 获取验证码请求。(不需要获取cookie)
- 使用同一个Session实例,调用post方法,发送登录请求。(不需要携带 cookie)
- 使用同一个Session实例,调用get方法,发送查看我的订单请求。(不需要携带 cookie)
import requests
# 1. 创建一个 Session 实例。
session = requests.Session()
# 2. 使用 Session 实例,调get方法,发送获取验证码请求。(不需要获取cookie)
resp_v = session.get(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=verify&r=0.21519623710645064")
# 3. 使用 同一个 Session 实例,调用 post方法,发送 登录请求。(不需要携带 cookie)
resp = session.post(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=do_login&t=0.7094195931397276", data={"username": "13012345678", "password": "12345678", "verify_code": "8888"}) print(resp.json())
# 4. 使用 同一个 Session 实例,调用 get 方法,发送 查看我的订单请求。(不需要携带 cookie)
resp_o = session.get(url="http://tpshop-test.itheima.net/Home/Order/order_list.html") print(resp_o.text)
四、Response对象—获取响应内容
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END