requests库
Posted wang-y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests库相关的知识,希望对你有一定的参考价值。
目录
request库
官方文档:http://www.python-requests.org/
安装:pip install requests
1.七个主要方法
- requests.Request() 构造一个请求,支撑以下各方法的基础方法
- requests.get() 获取html网页的主要方法,对应于HTTP的GET
- requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
- requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
- requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
- requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
- 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(代码片段