python爬虫—从零开始(三)Requests库

  • 2019 年 10 月 5 日
  • 筆記

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/ (可能需要翻墙)

以上我们就对Requests库基本都介绍一遍了,希望对大家有所帮助。

下篇文章我会来介绍一下BeautifulSoup库的使用。

上述代码地址:https://gitee.com/dwyui/Requests

          感谢大家的阅读,不正确的地方,还希望大家来斧正,鞠躬,谢谢?。