python爬虫---从零开始(三)Requests库
1,什么是Requests库
Requests是用python语言编写,基于urllib,采用Apache2 Licensed 开源协议的HTTP库。
它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求,用一句话来说,Requests是
python实现的简单易用的HTTP库。
安装Request,直接输入pip3 install requests
2,使用方法(底部有码云地址)
相对上一期的urllib库要简单了很多了(个人觉得简单了不少的)
各种请求方式:
详细请求方式
get方式:基本写法
带参数的GET请求
也可以写成这样的:
这两种方式,都可以满足为GET请求传递参数。
解析JSON
当我们输入.json()时,这时会给予我们一个字典类型的数据。或者使用json.loads也是可以的,返回结果完全一致的。
获取二进制数据(例如下载图片,音频和视频等文件操作)
我们可以打开该网站看一下内容到底是什么,是一个小🐱的来看,下怎么下来该图片
添加请求头:
某乎这个网站对于没有请求头的方式,是没有办法请求的,我们来看下报错信息。
下面是添加请求头时的模拟请求:我们来模拟一个google浏览器的请求。
这次我们就可以请求成功了。
到这里,基本的GET请求方式都已经全部说完了,比上一期的urllib要简单很多了吧。反正我是这样认为的。
POST请求:基本请求方式
添加请求头headers的POST请求
到这里我们把POST方法也大概说了一遍,和get的方法基本一致。
响应:
response属性:
状态码其实是有一个分组的,我们先来一个简单的示例:
在这里我们大家列出了所有的状态码:
有了这些状态码,我们也可以这样来写:
Requests高级操作
文件上传
获得cookie
保持会话:
在这里我们看到cookie并没有被设置成功,这样访问,其实我们是发起了两次请求,我们在这里需要设置一个session对象,使其保持会话状态。示例如下
这样我们就成功的设置了保持会话。不担心cookie设置问题,Requests会帮我们自动设置好的。
SLL证书验证:
现在的这种状态是不安全的,会给予警告提示。我们可以这样来继续设置证书:
我们也可以手动的删除警告信息,需要倒入原生的urllib3的包,我们来看一下效果:
代理设置:
由于我这没有代理ip,我简单写了一个示例,大家有代理的可以自行更改ip端口进行尝试
代理如果有账户密码时,我们可以这样来写
超时设置:
认证设置:
以上两种认证方式都是可以的。
异常处理:刚才我们在设置超时的时候就见过一个异常处理,下面我们来看下异常处理
这里只写了几个常见的异常,详细的我们可以进入官网查看,地址: https://docs.python-requests.org/ (可能需要FQ)
以上我们就对Requests库基本都介绍一遍了,希望对大家有所帮助。
下篇文章我会来介绍一下BeautifulSoup库的使用。
上述代码地址:https://gitee.com/dwyui/Requests
感谢大家的阅读,不正确的地方,还希望大家来斧正,鞠躬,谢谢🙏。