接上节:
Cookies
我们可以利用cookies变量拿到一个站点响应包含的cookie信息,上代码:
还可以利用cookies参数向服务器发送cookie信息,上代码:
运行结果如下:
超时设置
最大请求时间可以通过timeout参数来设置,上代码:
requests.get('http://www.baidu.com', timeout=0.001)
需要注意的是这里的超时只是连接超时,并不是响应体动作的时间,比如一个下载需要很长时间,这个参数没什么作用的。
会话对象
当我们对同一个url进行两次请求时,就相当于用两个不同的浏览器单独打开的效果,也就是两次请求并不在同一个回话中,上代码:
运行结果是:
很明显,设置的cookie信息,并没有在第二次请求中获取到,也就是两次请求不在同一个回话中,解决方法如下:
运行结果如下:
从结果上看,第一次请求设置的cookie信息,在第二次请求中获取到了,说明两次请求时在同一个会话中。
会话是一个全局的配置,所以一些请求中参数的设置也是全局的,如下:
代码中首先通过s.headers.update方法对headers进行了更新,后又在get方法中对headers进行了设置,那么运行结果是什么那?如下:
可见由于在同一会话中,故而两个headers值都传进去了。
SSL证书验证
现在的网站都是https协议的,Requests提供了验证SSL证书的功能,参数为verify,我们利用下面代码来验证12306网站的证书是无效的,代码如下:
运行结果如下:
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: true
可见12306站点的SSL果然无效。
代理
如果我们在请求中需要设置代理信息,可以使用proxies参数,代码如下:
运行结果如下:
完结!