zoukankan      html  css  js  c++  java
  • requests库

    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')
    
  • 相关阅读:
    to_char &&to_date
    java中Integer 与 String 类型的 相互 转换
    group by 的用法
    谈 计算时间的天数差
    领域建模
    Java Classloader详解
    阿里巴巴Java招聘
    Maven Archetype
    负载均衡
    Maven
  • 原文地址:https://www.cnblogs.com/Wang-Y/p/9350197.html
Copyright © 2011-2022 走看看