python session模块_Python requests模块session代码实例
http协议本身是无状态的,为了让请求之间保持状态,有了session和cookie机制。requests也提供了相应的方法去操纵它们。
requests中的session对象能够让我们跨http请求保持某些参数,即让同一个session对象发送的请求头携带某个指定的参数。当然,最常见的应用是它可以让cookie保持在后续的一串请求中。
下面,通过官方文档中的示例来了解如何使用它。
import requests
s = requests.Session()
# 第一步:发送一个请求,用于设置请求中的cookies
# tips: http://httpbin.org能够用于测试http请求和响应
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
# 第二步:再发送一个请求,用于查看当前请求中的cookies
r = s.get("http://httpbin.org/cookies")
print(r.text)
运行结果
{
"cookies": {
"sessioncookie": "123456789"
}
}
从结果中我们可以看出,第二次请求已经携带上了第一次请求所设置的cookie,即通过session达到了保持cookie的目的。示例中创建了一个requests.Session()对象,通过该对象来进行http请求操作,该操作基本类似于requests.request()
由于session让请求之间具有了连贯性,那么,就有了跨请求参数和非跨请求参数的区别。即有时我想让所有请求均带有某个参数,而有时我只是想让单独的一条请求带上临时的参数。通过下面的例子来了解如何使用。
import requests
s = requests.Session()
s.headers.update({'x-test': 'true'})
# both 'x-test' and 'x-test2' are sent
r1 = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
print(r1.text)
# 'x-test' is sent
r2 = s.get('http://httpbin.org/headers')
print(r2.text)
运行结果
# r1.text
{
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0",
"X-Amzn-Trace-Id": "Root=1-5e91656f-b99f14a4d6f47f9e55a90bb4",
"X-Test": "true",
"X-Test2": "true"
}
}
# r2.text
{
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0",
"X-Amzn-Trace-Id": "Root=1-5e91656f-e9741db4c2ca2fd6e0628396",
"X-Test": "true"
}
}
从结果中我们可以得出两条结论:
session可以为请求方法提供缺省数据,比如第一次请求中的{'x-test': 'true'}就是缺省数据,此时的缺省数据就是跨请求参数。
方法级别的参数不会被跨请求保持,比如第二次请求时,没有携带headers={'x-test2': 'true'},返回的结果中也没有{'x-test2': 'true'},说明该参数没有在第一次请求后被保持住。
参考资料
https://github.com/psf/requests/blob/master/requests/sessions.py
https://requests.readthedocs.io/en/master/user/advanced/#session-objects
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: Python requests模块session代码实例
本文地址: http://www.cppcns.com/jiaoben/python/307498.html
python session模块_Python requests模块session代码实例相关推荐
- python2 requests模块_python requests模块详解
requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib ...
- python结构体_Python实现结构体代码实例
Python实现结构体代码实例 这篇文章主要介绍了Python实现结构体代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # python 使 ...
- python画烟花_python烟花效果的代码实例
天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀. 这个有趣的小项目并不复杂,只需一点可视化技巧,100余 ...
- python随机验证码_Python生成随机验证码代码实例解析
生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...
- python图像文件压缩_python实现图片压缩代码实例
前言 项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩 一:导入包 from PIL import Image import os 二:获取图片文件的大小 def get ...
- Python爬虫实战,requests模块,Python实现告诉你女神节送什么礼物
前言 利用Python实现告诉你女神节送什么礼物.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块: pandas模块 qrcode模块: ...
- Python实战案例,requests模块,Python实现获取动态图表
前言 利用Python实现获取动态图表,废话不多说~ 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re模块: requests模块: urllib模块: pandas模 ...
- Python爬虫实战,requests模块,Python实现抓取王者荣耀全套皮肤
开发工具 Python版本: 3.6.4 相关模块: requests模块: urllib模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块 ...
- Python爬虫实战,requests模块,爬虫采集网易财经股票交易数据
前言 本文给大家分享的是如何通过Python爬虫采集网易财经易数据 开发工具 Python版本: 3.8 相关模块: requests模块 parsel模块 环境搭建 安装Python并添加到环境变量 ...
最新文章
- Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)
- LiveMigration之四配置高可用虚拟机
- wxWidgets:在 Unix (GTK+) 下打印
- C++中 static 关键字的作用
- LS-DYNA常用关键字
- c 语言练习__去掉多余的空白字符_修正
- 什么是光纤通道交换机(FC SWITCH)
- IT职场的一些处事之道
- java 正则表达式
- ---单元数组-创建获取重塑单元数组----求解形如A(B)
- FlexDisPlayRoom正在发货「可在线玩弄」
- java使用pdfbox拆分PDF文件
- STM32单片机的学习方法(方法大体适用所有开发版入门)
- 打造APP引导页3D切换特效
- 出生年月缩写c语言,如何用C语言编写输入出生年月?
- naming conflicts with other components【vue3】
- 运营商业务系统基于 KubeSphere 的容器化实践
- 小程序发送模板消息给用户 —— 一次性模板实现“长期订阅”
- 数学建模论文基本格式(转载)
- DM——数据处理基础之数据、数据统计特性
热门文章
- 计量风险系列—两大定价产品怎么计算风险损失
- 把一个 ASP.NET 程序转换为了 Web Services
- POI的XWPFTableCell的方法
- VMware Workstation 12 Player之安装林耐斯-Linux Red Hat 7 -系统
- springmvc 静态资源 配置
- uiautomatorviewer 查看元素新思路
- Ubuntu 16.04出现chmod: 无效模式:a的问题解决
- 20145326蔡馨熤《计算机病毒》——代码的动静态分析结合
- ios 的frame,bound,center
- JS魔法堂:浏览器模式和文档模式怎么玩?