原创

Requests库

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定制头(模拟浏览器进行访问)
  • cookies:字典或CpplieJar,Request中的cookie
  • auth:元祖,支持HTTP认证功能
  • files:字典类型,传输文件
  • timeout:设定超时时间,秒为单位
  • proxies:字典类型,设定访问代理服务器,可以增加登陆认证
  • allow_redirects:True//False,默认为True,重定向开关
  • stream:True/False,默认为True,获取内容立即下载开关
  • verify:True/False,默认为True,认证SSL证书开关
  • cert:本地SSL证书路径

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Scrapy框架-爬虫程序相关属性和方法汇总

    如果不写start_requests方法:他会把start_urls的两个网址都发送过去

    小小咸鱼YwY
  • Flipcart 爬取流程

    小小咸鱼YwY
  • python切分序列图可视化程序

    小小咸鱼YwY
  • 2017 年你不能错过的 Java 类库

    各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库...

    Java高级架构
  • 2018 年你不能错过的 Java 类库

    因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。

    芋道源码
  • 轮询与长轮询

    GH
  • 基于python开发的口罩供需平台

    该项目是基于python的web类库django开发的一套web网站,做为一个公益项目。

    山东程序员
  • 如何遍历JavaScript中对象属性

    在2016年6月发布的ECMAScript 2016的同一时期,令JavaScript开发人员开心的是知道另一组很棒的提案已经达到了第4阶段(完成)。

    疯狂的技术宅
  • 关于Servlet 中文编码问题,Tomcat版本的影响

    Servlet获取参数编码的问题,在8.0之前,tomcat默认的编码是ISO-8859-1的,tomcat在8.0以后,默认的编码就变成UTF-8了 所以在t...

    Alone88
  • 【同行说技术】致前端:react开发的5个资源合集

    本文作者:IMWeb seagirl 原文出处:IMWeb社区 未经同意,禁止转载 ? 现在最热门的前端框架,毫无疑问是React。在基于React的...

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券