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的灵活性。

参考文档

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

python requests cookiejar,Python requests模块cookie实例解析相关推荐

  1. python requests cookie_Python requests模块cookie实例解析

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

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

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

  3. python image 转成字节_(推荐)谈谈Python生态圈图像格式转换问题:含实例解析

    今天为大家带来的内容是:(推荐)谈谈Python生态圈图像格式转换问题:含实例解析 天气冷了,码字手都不利索了!先哈一哈气,各位也要多穿衣服注意保暖哈.话不多说,就直接进入主题了. 在Python生态 ...

  4. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片

    本文主要为大家分享一篇Python如何实现爬取京东手机图片的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 运行环境Python3.6.4#爬取京东手机图片i ...

  5. python mysqldb cursor_python中MySQLdb模块用法实例

    转载自:http://www.jb51.net/article/57290.htm 姓名:梅金波                        学号:16010110036 [嵌牛导读]MySQLdb ...

  6. Python单例模式的四种创建方式实例解析

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  7. python如何调用字典_如何访问python字典里的值?(实例解析)

    今天这篇文章中我们来了解一下python之中的字典,在这文章之中我会对python字典访问进行说明,以及python使用.访问字典的实例分析.好了废话不多说,我们开始进入文章吧. 访问字典里面的值 把 ...

  8. python创建单例模式_Python单例模式的四种创建方式实例解析

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  9. __init__在python中的用法知乎_python中对_init_的理解及实例解析 python为什么要有一个init函数 知乎...

    Python中"__init__"的意义是什么? Python中__init__的意义依偎着你心跳声如此频繁,就算世界末日小编也会嚣张的笑. 测试人员学python时,应该如何理解 ...

最新文章

  1. python处理速度_如何让Python处理速度翻倍?内含代码
  2. 第六届数学、计算机与生命科学交叉研究青年学者论坛 (大牛云集的生信会议,免注册费且提供午餐)...
  3. 装管家婆系统要开启那些服务器,管家婆服务器维护注意的一些事项?
  4. pythondocx批量提取目录及内容_使用pythondocx搜索目录中的所有docx文件(批处理)...
  5. 怎么在html中加判断,css样式里面如何做判断
  6. Python--set集合讲解; 什么是集合?创建一个集合;集合的操作函数;
  7. python中hasattr()、getattr()、setattr()函数的使用
  8. ruby推送示例_Ruby直到示例循环
  9. 用jetty起maven工程debug报source not found
  10. 及部署 项目案例_盘点丨2019十大边缘计算项目
  11. 单板剥皮机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  12. 【我的Android进阶之旅】APK反编译教程和工具下载
  13. php45欧米伽_PHP中的数字格式5.5到5.50 - php
  14. U盘PE启动盘制作好后,如何进入PE系统?
  15. ninja: error: ‘xxx‘, needed by ‘xxx‘, missing and no known rule to make it
  16. [转]不可不知的十部交响曲
  17. Java面试自我介绍篇
  18. 丝线行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  19. 驰骋工作流引擎-督查督办系统
  20. 北京8成楼盘降价促销 房价已下跌10%-15%

热门文章

  1. 论文首页下划线怎么对齐_毕业论文标准格式要求是什么样的?
  2. python回归分析预测模型_在Python中如何使用Keras模型对分类、回归进行预测
  3. SpringBoot官方提供的starter pom
  4. CDI services--Decorators(装饰器)
  5. ajax 异步插入图片到数据库(多图上传)
  6. BZOJ 1020 安全的航线flight
  7. SQL 查询结果为 XML
  8. 一个类作为另一个类的数据成员
  9. Cocos2d-x学习笔记(9)(CCTextFieldTTF使用输入框)
  10. C#实现浮动和多标签窗体解决方案---使用Dockpanel