1、介绍Requests,是Python最流行的第三方模块,其接口人性化的设计远比Python的原生urllib模块更加方便使用,在数据采集(爬虫)、测试开发中占据了举足轻重的地位。
Requests是一个功能强大的HTTP Client,能够帮助我们发送HTTP请求,并获取响应
安装
2、接口说明
使用requests库前都要导入requests库
3、响应对象Response
3.1、响应状态码、响应头、响应体
3.2、字符编码请求发出后,Requests 会基于 HTTP 头部对响应的编码作出推测。
当访问 resp.text 之时,Requests 会使用其推测的文本编码, 如果 request 推测的编码和实际的响应的编码不同则可能出现乱码。
通过 resp.encoding 查看当前使用的编码, 也可以通过赋值来改变这个编码.
3.3、Response.json()
Response.json()方法可以将接口json格式的返回内容自动转换为python的字典
返回内容如下
注意:如果 JSON 解码失败, r.json() 就会抛出一个异常。例如,响应内容是 html 格式的,尝试访问 r.json() 将会抛出异常。
错误信息如下:
4、发送GET请求
4.1、传递URL参数
4.2、定制请求头
4.3、定制cookies
5、发送post请求
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是jsondata主要是发送表单格式报文
json主要是发送json格式报文
以下发送json格式数据:
6、Session状态保持通过浏览器进行登录操作时,服务器会返回cookie,浏览器会把这些 cookie 存储下来,下次发起请求就把之前保存的 cookie 携带着发送给服务器,从而实现了状态保持。
通过 requests进行登录操作或者其他操作,服务器返回了 cookie,下次再通过 requests发起其他请求时,requests 并不会把前面请求的 cookie 携带着发送给服务器,也就是说通过 requests是无法自动实现状态保持的。
requests模块中的Session类能够自动处理发送请求获取响应过程中产生的cookie,进而达到状态保持的目的。
session实例在请求了一个网站后,对方服务器设置在本地的cookie会保存在session对象中,下一次再使用session请求对方服务器的时候,会带上前一次的cookie
需求:获取用户信息。获取用户信息必须先调用进行用户登录接口,在调用获取用户信息接口。
requests方式:
运行结果如下:
session方式:
运行结果如下: