cookie并不陌生,与session一样,能够让http请求前后保持状态。与session不同之处,在于cookie数据仅保存于客户端。requests也提供了相应到方法去处理cookie。

在python requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie。当我们想设置方法级别中的请求时,可以如下面示例一样操作。

import requests

s = requests.session()

# 第一步:发送一个请求,用于设置请求中的cookies

cookies = dict(cookies_are='cookie1')

# tips: http://httpbin.org能够用于测试http请求和响应

r1 = s.get(url='http://httpbin.org/cookies', cookies=cookies)

print(r1.text)

# 第二步:发送一个请求,用于再次设置请求中的cookies

cookies = dict(cookies_are='cookie2')

r2 = s.get(url='http://httpbin.org/cookies', cookies=cookies)

print(r2.text)

运行结果

# r1.text

{

"cookies": {

"cookies_are": "cookie1"

}

}

# t2.text

{

"cookies": {

"cookies_are": "cookie2"

}

}

从结果中可以看出,该方法让cookie只作用了单个请求,因为方法级别的参数不会被跨请求保持,这是requests中session对象的机制,这里不再赘述。那么,如果我们想跨请求保持cookie呢?这里依旧可以应用session对象的跨请求机制,方法如下:

import requests

s = requests.session()

s.cookies.update({'cookies_are': 'cookie'})

r = s.get(url='http://httpbin.org/cookies')

print(r.text)

值得一提的是,除了直接用字典去赋值cookie之外,requests还提供了RequestsCookieJar对象供我们使用,它的行为类似字典,但接口更为完整,适合跨域名跨路径使用。来看一个官方文档中的示例。

import requests

jar = requests.cookies.RequestsCookieJar()

jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')

jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')

url = 'http://httpbin.org/cookies'

r = requests.get(url, cookies=jar)

print(r.text)

运行结果

{

"cookies": {

"tasty_cookie": "yum"

}

}

从结果中,可以看出我们利用RequestsCookieJar对象,达到了根据不同请求路径,发送不同cookie的效果,进一步增加了操作cookie的灵活性。

参考文档

https://github.com/psf/requests/blob/master/requests/cookies.py

https://requests.readthedocs.io/en/master/user/quickstart/#cookies

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python requests模块cookie实例解析

本文地址: http://www.cppcns.com/jiaoben/python/307449.html

python requests cookie_Python requests模块cookie实例解析相关推荐

  1. python requests cookiejar,Python requests模块cookie实例解析

    cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...

  2. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  3. python中set()函数的用法,python中set()函数简介及实例解析

    python中set()函数简介及实例解析 set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系 ...

  4. python的用途实例-python进程池作用展示及实例解析

    在以下的文章之中我们来了解一下什么是python中的进程池.了解一下python进程池的相关知识,以及进程池在python编程之中能起到什么样的作用. 进程池 Pool类描述了一个工作进程池,他有几种 ...

  5. Python单元测试及unittest框架用法实例解析

    例题取用登录模块:代码如下 def login_check(username,password):''' 登录校验的函数:param username:账号:param password: 密码:re ...

  6. python sched_python定时任务 sched模块用法实例

    这篇文章主要介绍了python定时任务 sched模块用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过sched模块可以实现通过自定义时 ...

  7. python自己创建模块引用失败_详解Python import方法引入模块的实例 Python怎么import自己写的模块...

    python中 import导入模块失败的问题? python中的import引用不了模块我傻,为你傻;我痛,为你痛;深夜里,你是我一种惯性的回忆. 为什么我用from lianxi import*就 ...

  8. [Python] random.uniform( ) 函数教程与实例解析

    random.uniform( ) 函数教程与实例解析 1. uniform() 函数说明 random.uniform(x, y) 方法将随机生成一个实数,它在 [x,y] 范围内. 2. unif ...

  9. python requests cookie_python requests 带cookie访问页面

    背景: 获取需要登录的页面,可在登陆后将获取到的cookie添加到请求的脚本中. 方法: import requests url="http://webserver/admin" ...

最新文章

  1. C++中的命名空间namespace
  2. java父系调用子系,获取usb设备父系或子代
  3. output怎么用_性能领先,即训即用,快速部署,飞桨首次揭秘服务器端推理库
  4. Actionbarsherlock Demo 浅析 :Overlay
  5. 抢完口罩抢头盔!头盔销量激增,价格翻倍:昨天59元,今天258元
  6. Linux内核小笔记:spin_lock锁内不能使用sleep休眠
  7. resultAPI示例
  8. GITHUB使用简介
  9. 自己写的demo---equals()跟==的区别
  10. Xpath--使用Xpath爬取糗事百科成人版图片
  11. 寄存器以及偏移地址计算方法
  12. Excel如何将单元格公式显示出来
  13. 武魂java_ArrayLIst的使用
  14. RepVGG: Making VGG-style ConvNets Great Again
  15. PHP支付宝当面付异步回调如何实现验签
  16. AD9361配置(1)
  17. 香橙派Zero 2(H616)使用ffmpeg进行音频播放测试
  18. 因政策原因购房者违约的要如何处理
  19. 模型的评估方法及错误率与精度
  20. HP服务器DL 380Gen9 系统中ilo4初始化配置

热门文章

  1. PHP是弱类型还是强类型,php弱类型比较(松散比较) | CN-SEC 中文网
  2. 修改$_env php,Laravel如何友好的修改.env配置文件详解
  3. 科大星云诗社动态20210427
  4. [:zh]<机械课程设计>第三张表自动计算部分 Android安装包[:]2017-12-20
  5. wdcp后台重启服务器后mysql打不开
  6. dev c++怎么调试_「正点原子NANO STM32开发板资料连载」第十八章 USMART 调试组件...
  7. Qt修炼手册1_溢美之词和Designer设计
  8. How to write an operating system
  9. div的visibility和display属性区别
  10. 关于.NET中的Server push技术