码迷,mamicode.com
首页 > 其他好文 > 详细

Requests库介绍

时间:2017-12-09 20:46:23      阅读:1209      评论:0      收藏:0      [点我收藏+]

标签:hone   abi   stream   次数   支持   method   jar   json格式   org   

 

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦!

  • Beautiful is better than ugly.(美丽优于丑陋)
  • Explicit is better than implicit.(清楚优于含糊)
  • Simple is better than complex.(简单优于复杂)
  • Complex is better than complicated.(复杂优于繁琐)
  • Readability counts.(重要的是可读性)

 

requests库常用的7种方法:

requests.requests()

requests.get(‘https://github.com/timeline.json’) #GET请求

requests.post(“http://httpbin.org/post”) #POST请求

requests.put(“http://httpbin.org/put”) #PUT请求(提交修改全部的数据)

requests.delete(“http://httpbin.org/delete”) #DELETE请求

requests.head(“http://httpbin.org/get”) #HEAD请求

requests.patch(“http://httpbin.org/get”) #PATCH请求(提交修改部分数据)

剩下六种方法都是由requests()方法实现的,因此我们也可以说requests()方法是最常用的

在网络上,对服务器数据进行修改是比较困难的,在实际中get()方法是最为常用的方法

1.requests()方法:

requests.requests(method, url, **kwargs)

method:请求方式:GET, PUT,POST,HEAD, PATCH, delete, OPTIONS7种方式

url:网络链接

**kwargs: (13个可选参数)

             params: 字典或者字节序列,作为参数增加到url中

             data: 是第二个控制参数,向服务器提交数据

             json: JSON格式的数据,作为requests的内容

             headers: 字典,HTTP定制头

             cookies: 字典或CookieJar, Requests中的cookie

             auth: 元组,支持HTTP认证功能

             files: 字典类型,传输文件

             timeout: 设置的超时时间,秒为单位

             proxies: 字典类型,设定访问代理服务器,可以增加登录认证

             allow_redirects: True/False,默认为True, 重定向开关

             stream: True/False,默认为True,获取内容立即下载开关

             verity: True/False,默认为True, 认证SSL证书

             cert: 本地SSL证书路径   

2.get()方法:

requests.get(url, params=None, **kwargs)

url: 拟获取页面的url链接

params: url中的额外参数,字典或字节流,可选择

**kwargs:12个控制访问的参数,就是requests中除params参数

 3.head()方法

requests.head(url, **kwargs)

url: 拟获取页面的url链接

**kwargs:13个控制访问的参数

 4.post()方法

requests.post(url,  data=None, json=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

json: JSON格式的数据,Requests的内容

**kwargs:11个控制访问的参数

 5.put()方法

requests.put(url,  data=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

**kwargs:12个控制访问的参数

 6.patch()方法

requests.patch(url,  data=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

**kwargs:12个控制访问的参数

 7.delete()方法

requests.delete(url, **kwargs)

url: 拟删除页面的url链接

**kwargs:13个控制访问的参数

 

 

 

Response对象

使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,

常用属性:

r.status_code #HTTP响应状态码,200表示响应成功,404表示失败

r.content #HTTP响应内容的二进制形式

r.text #字符串方式的响应体,

r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.encoding#从HTTP头header中提取响应内容的编码方式(这个编码方式不一定存在)

r.apparent_encoding#从内容中分析出响应内容的编码方式(这个编码方式是绝对正确的)

 

常用方法:

r.raise_for_status() #失败请求(非200响应)抛出requests.HTTPError异常

 

Requests库的异常:

requests.ConnectionError: 网络连接错误异常,如DNS查询失败,拒接连接等

requests.HTTPError: HTTP错误异常

requests.URLRequired: URL缺失异常

requests.TooManyRedirects: 超过最大重定向次数,产生的重定向异常

requests.ConnectTimeout: 远程连接服务器异常超时

requests.Timeout: 请求URL超时,产生的超时异常

Requests库介绍

标签:hone   abi   stream   次数   支持   method   jar   json格式   org   

原文地址:http://www.cnblogs.com/mlgjb/p/8012461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!