前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫---从零开始(三)Requests库

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

作者头像
小菜的不能再菜
修改2019-10-09 09:26:37
3900
修改2019-10-09 09:26:37
举报
文章被收录于专栏:java_pythonjava_python

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

最近搞了一个个人公众号,会每天更新一篇原创博文,java,python,自然语言处理相关的知识有兴趣的小伙伴可以关注一下。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档