python之_requests库学习_4(session会话)
来源:互联网 发布:魅色软件 编辑:程序博客网 时间:2024/06/15 05:49
前面几篇学习了requests库的一些基础知识,接下来学习它更高级的用法
一、会话对象session
1、session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。
import requestss=requests.Session() #创建一个session对象s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') #设置cookiesr = s.get('http://httpbin.org/cookies') print(r.text)#结果{"cookies": { "sessioncookie": "123456789"}
http://www.jianshu.com/p/aa79b91a55af 这篇文章比较详细的讲解了cookies和session的一些关系
2、提供请求方法的缺省数据,通过设置session对象的属性来实现
import requestss=requests.Session()#设置session对象的auth属性,用来作为请求的默认参数 s.auth=('user','pass')#设置session的headers属性,通过update方法,将其余请求方法中的headers属性合并起来作为最终的请求方法的headers s.headers.update({'x-text':'true'})#发送请求,这里没有设置auth会默认使用session对象的auth属性,这里的headers属性会与session对象的headers属性合并 r=s.get('http://httpbin.org/headers',headers={'x-test2':'true'}) #如果设置相同的'x-text'则会覆盖上面设置的headerprint(r.text)
以上通过 s.headers.update 方法设置了 headers 的变量。然后我们又在请求中设置了一个 headers,且方法层的参数覆盖会话的参数;函数参数级别的数据会和session级别的数据合并,如果key重复,函数参数级别的数据将覆盖session级别的数据。如果想取消session的某个参数,可以在传递一个相同key,value为None的dict
#结果{ "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Authorization": "Basic dXNlcjpwYXNz", # "Connection": "close", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.4", "X-Test2": "true", # "X-Text": "true" # }}
如果r = s.get('http://httpbin.org/headers', headers={'x-test': None})
将设置为None值则header中’x-test’会自动被忽略
3、函数参数中的数据只会使用一次,并不会保存到session中
import requestss=requests.Session()s.auth=('user','pass')s.headers.update({'x-text':'true'})r=s.get('http://httpbin.org/headers',headers={'x-test2':'true'})print(r.text)r=s.get('http://httpbin.org/headers')print('第二次访问结果')print(r.text)
如图第二次访问的时候已经没有函数参数设置的数据
3、会话还可以用作前后文管理器,保证with 区块退出后会话能被关闭
with requests.Session() as s: s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
阅读全文
0 0
- python之_requests库学习_4(session会话)
- python之_requests库学习_1(基础知识)
- python之_requests库学习_5(超时与异常)
- python之_requests库学习_2(post请求参数传递)
- python之_requests库学习_3(请求响应信息获取)
- python学习_4
- ZooKeeper之会话(session)
- axis2系列之会话(session)管理
- oracle之session会话
- 会话技术之Session
- 会话管理之Session
- 会话技术之SESSION
- php学习之会话应用cookie和session
- Robot Framework 学习_4(python+Robot Framework)
- 会话 (session)
- 会话(Session)固定
- 图解Session(会话)
- 会话(cookie session)
- 迅为4412嵌入式开发板Ubuntu烧写,手动挂载盘符
- 树
- python处理csv中的空值
- android-java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080)解决方法
- Android关于图片处理的一些方法
- python之_requests库学习_4(session会话)
- Hibernate配置文件hibernate.cfg.xml的详解
- Smooth streaming直播manifest
- jieba分词/jieba-analysis(java版)
- JAVA Head First 第三章 primitive主数据类型和引用
- retina屏 1px变宽问题的理解和解决方法
- 编译过程做了哪些事情;
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- 2017.11.19