首页 > 编程语言 > 详细

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

时间:2019-05-27 00:06:02      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:了吧   刚才   需求   添加   inf   alt   信息   会话状态   查看   

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

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

 

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

标签:了吧   刚才   需求   添加   inf   alt   信息   会话状态   查看   

原文:https://www.cnblogs.com/cxiaocai/p/10927377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号