欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Requests库

程序员文章站 2022-03-25 20:17:53
Requests库 ` 1.Response对象的属性 属性|说明 : :|: : r.status_code|HTTP请求返回的状态,200表示成功,404表示失败,还有其他的也代表失败 r.text|HTTP响应内容转换成字符串格式 r.content|HTTP响应内容转换成二进制格式 r.en ......

requests库

`

1.response对象的属性

属性 说明
r.status_code http请求返回的状态,200表示成功,404表示失败,还有其他的也代表失败
r.text http响应内容转换成字符串格式
r.content http响应内容转换成二进制格式
r.encoding 从http header中猜测响应内容
r.apparent_encoding 从内容中分析响应内容的编码方式(备选编码方式)

r.encodingr.apparent_encoding

  • r.encoding:如果header中不存在charset,则默认编码为iso-8859-1

  • r.apparent_encoding :根据内容来匹配出合适的编码
  • apparent_encoding比encoding更加准确的展示编码方式

2.requests库的异常

异常 说明
requests.connectionerror 网络连接错误异常,如dns查询失败、拒绝连接等
requests.httperro http错误异常
requests.urlrequired url缺失异常
requests.toomanyredirects 超过最大重定向次数,产生重定向异常
requests.connecttimeout 连接远程服务器超时异常
requests.timeout 请求url超时,产生超时异常
  • 如果在r.status_code不是200时候,我们可以r.raise_for_status(),如果不是200,引发httperror异常

    举例:通用爬取的框架

    import requests
    def get_html_text(url):
        try:
            r =requests.get(url,timeout=30)
            r.raise_for_status() #如果不是200,引发httperror异常
            r.encoding = r.apparent_encoding
            return r.text
        except:
            return '产生异常'
    if __name__ == '__main__'  #在pycharm中你可以直接main+tab快速出这行
      get_html_text(https://www.cnblogs.com/pythonywy)

3.requests库的方法

3.requests库的方法

http协议中6个方法 介绍
get 请求获取url位置的资源
head 请求获取url位置的资源的响应报告,及获得头部信息
post 请求获取url位置的资源后附加用户新的数据
put 请求获取url位置储存一个资源,覆盖原url位置资源
patch 请求局部更新url位置资源,及改变该处资源的部分内容
delete 请求删除url位置储存的资源
  • 获取云端资源用get,head

  • 把自己资源放入云端用put post patch

  • 删除现有资源del

    用url对资源位置的定义

    1.patch与put区别

    patch可以对于局部修好,put是全部覆盖

    requests与协议方法一一对应

方法 介绍
requests.request() 设置请求格式
requests.get() 请求获取url位置的资源
requests.head() 请求获取url位置的资源的响应报告,及获得头部信息
requests.post() 请求获取url位置的资源后附加用户新的数据
requests.put() 请求获取url位置储存一个资源,覆盖原url位置资源
requests.patch() 请求局部更新url位置资源,及改变该处资源的部分内容
requests.delete() 请求删除url位置储存的资源

4.requests库13个参数

  • params:字典或字节序列,作为参数增加到链接中
  • data:字典,字节序列或文件对象,作为请求的内容
  • json:json格式的数据,作为request的内容
  • headers:字典,http定制头(模拟浏览器进行访问)
  • cokies:字典或cppliejar,request中的cookie
  • auth:元祖,支持http认证功能
  • files:字典类型,传输文件
  • timeout:设定超时时间,秒为单位
  • proxies:字典类型,设定访问代理服务器,可以增加登陆认证
  • allow_redirects:true//false,默认为true,重定向开关
  • stream:true/false,默认为true,获取内容立即下载开关
  • verify:true/false,默认为true,认证ssl证书开关
  • cert:本地ssl证书路径