requests库

Posted wang-y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:[email protected]:3128/",  # 认证的代理http://user:[email protected]:port这样的语法
        ‘http‘: ‘socks5://user:[email protected]: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库的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

Chrome-Devtools代码片段中的多个JS库

java 怎么接收第三方传过来的xml

Xamarin Android 片段库

推进学说代码片段