Requests库的使用
- 发起请求
- 接收响应
- session对象
发起请求
请求方法
get、post、head、options、delete、put
传递url参数
构造一个字典,并在请求时将其传递给params参数
提交数据时,遇到相同的参数名,但有不同的值,而python的字典又不支持键的重名,可以把键的值用列表表示
自定义headers
自定义cookies
在headers中添加
cookies参数(必须为字典形式)
设置代理(proxies参数)
重定向
allow_redirects=false 禁止重定向
history 属性可以查看历史记录,从哪个网站过来的,重定向过来的会显示重定向的状态码
禁止证书验证
把verify参数设置为false
禁止证书验证后,会有warning
关闭警告
from requests.packages.urllib3.exceptions import insecurerequestwarning
requests.packages.urllib3.disable_warnings(insecurerequestwarning)
设置超时 timeout属性
以流形式下载 stream=true
接收响应
响应内容
text属性,返回的是文本内容
字符编码
requests会自动的根据响应的报头来猜测网页的编码是什么,然后根据猜测的编码来解码网页内容,基本上大部分的网页都能够正确的被解码
而如果发现text解码不正确的时候,就需要自己手动的去指定解码的编码格式
二进制数据
如果需要获得原始的二进制数据,那么使用content属性即可
json数据
如果访问之后获得的数据是json格式的,那么可以使用json()方法,直接获取转换成字典格式的数据
状态码
通过status_code属性获取响应的状态码
响应报头
headers属性
服务器返回的cookies
cookies属性
查看访问的url
url属性
session对象
在requests中,实现了session(会话)功能,当我们使用session时,能够像浏览器一样,在没有关闭浏览器时,能够保持住访问的状态
这个功能常常用于登陆之后的数据获取,使我们不用再一次又一次的传递cookies
首先生成一个session对象,然后用这个session对象来发起访问,发起访问的方法与正常的请求一摸一样
需要注意的是,如果是在get()方法中传入headers和cookies等数据,那么这些数据只在当前这一次请求中有效
如果想要让一个headers在session的整个生命周期内都有效的话,需要进行设置:session.headers.updata(headers)
推荐阅读