什么是requests库
在使用urllib库时可以发现,虽然这个库提供了很多关于HTTP请求的函数,但是这些函数的使用方式并不简洁,仅仅实现一个小功能就要用到一大堆代码。因此,Python提供了一个便于开发者使用的第三方库—requests。
requests库自称“HTTP for Humans”,直译过来的意思是专门为人类设计的HTTP库,能够被开发人员安全地使用。
requests是基于Python开发的HTTP 库,与urllib标准库相比,它不仅使用方便,而且能节约大量的工作。实际上,requests是在urllib的基础上进行了高度的封装,它不仅继承了urllib的所有特性,而且还支持一些其它的特性,比如使用Cookie保持会话、自动确定响应内容的编码等,可以轻而易举地完成浏览器的任何操作。
requests库中提供了如下常用的类:
requests.Request:表示请求对象,用于准备一个请求发送到服务器。
requests.Response:表示响应对象,其中包含服务器对HTTP请求的响应。
requests.Session:表示请求会话,提供Cookie持久性、连接池和配置。
其中,Request类的对象表示一个请求,它的生命周期针对一个客户端请求,一旦请求发送完毕,该请求包含的内容就会被释放掉。而Session类的对象可以跨越多个页面,它的生命周期同样针对的是一个客户端。当关闭这个客户端的浏览器时,只要是在预先设置的会话周期内(一般是20~30分钟),这个会话包含的内容会一直存在,不会被马上释放掉。例如,用户登陆某个网站时,可以在多个IE窗口发出多个请求。