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

requests库

时间:2018-07-22 16:59:54      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:支持   服务器   错误   key   格式   als   传输文件   进制   warnings   

目录

request库

官方文档:http://www.python-requests.org/
安装:pip install requests

1.七个主要方法

返回目录

  1. requests.Request() 构造一个请求,支撑以下各方法的基础方法
  2. requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
  3. requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
  4. requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
  5. requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
  6. requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
  7. requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE

2.Request对象(其它方法参数,用法差不多)

返回目录

s = Session()
req = Request(‘POST‘, url, data=data, headers=headers)  # 构造了一个Request对象
prepped = s.prepare_request(req)  # 其转换为一个Prepared Request对象
r = s.send(prepped)  # send()方法发送

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

  • url : 拟获取页面的url链接 ?

  • method : 请求方式 ,对应get/put/post等7种

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

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

    • data : 字典、字节序列或文件对象,作为Request的内容,post请求

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

    • headers : 字典,HTTP定制头,常设置User-agent,referer,cookie

    • cookies : 字典或CookieJar,Request中的cookie,

    • auth : 元组,支持HTTP认证功能,auth=(‘username‘, ‘password‘)

    • files : 字典类型,传输文件,files = {‘file‘: open(‘favicon.ico‘, ‘rb‘)}

    • timeout : 设定超时时间,秒为单位

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

      proxies = {
        "http": "http://10.10.1.10:3128",  # 普通代理
        "http": "http://user:password@10.10.1.10:3128/",  # 认证的代理http://user:password@host:port这样的语法
        ‘http‘: ‘socks5://user:password@host:port‘,  # pip3 install ‘requests[socks]‘安装SOCKS库,SOCKS代理
        }
      
    • allow_redirects : True/False,默认为True,重定向开关

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

    • verify : True/False,默认为True,认证SSL证书开关,请求一个HTTPS站点,但是证书验证错误的页面时会报错,设置为False即可,但会有警告:from requests.packages import urllib3;urllib3.disable_warnings()忽略警告

    • cert : 本地SSL证书路径

3.Response对象的属性

返回目录

  • r.status_code       

HTTP请求的返回状态,200表示连接成功,可以和一个内置的状态码查询对象requests.codes比较,例如r.status_code==requests.codes.OK判断是否返回200

  • r.text
      
    HTTP响应内容的字符串形式,即,url对应的页面内容

  • r.encoding

从HTTP header中猜测的响应内容编码方式,如果header中不存在charset,则认为编码为ISO‐8859‐1 r.text根据r.encoding显示网页内容

  • r.apparent_encoding

从内容中分析出的响应内容编码方式(备选编码方式),根据网页内容分析出的编码方式可以看作是r.encoding的备选

  • r.content

HTTP响应内容的二进制形式,二进制写入文件

  • r.josn()

JSON格式的字符串转化为字典,或json.loads(response.text)

  • r.url

请求的url

  • r.history

历史

4.requests异常

返回目录

requests.RequestException:基类异常

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

requests.HTTPError HTTP错误异常

requests.URLRequired URL缺失异常

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

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

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

5.requests其他方法和属性

返回目录

requests.codes

一个内置的状态码查询对象,例如requests.codes.OK

requests.cookies

新建了一个RequestCookieJar对象,用set()方法设置每一个key和value

jar = requests.cookies.RequestsCookieJar()` 
jar.set(key, value)

requests.Session()

方便地维护一个会话,而且不用担心cookies的问题,它会帮我们自动处理好

s = requests.Session()  # 得到一个Session对象,通过这个对象发送请求,都属于同一个会话
s.get(‘www.baidu.com‘)

requests库

标签:支持   服务器   错误   key   格式   als   传输文件   进制   warnings   

原文地址:https://www.cnblogs.com/Wang-Y/p/9350197.html

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