python中的session

简介: python中的session

在自动化用例过程中,我们可能会涉及到一些http请求相关的内容。普通的请求通过requests常规的get/post/delete/put等方法,都可以比较轻松的完成。但是对于一些请求状态保持的情况,例如用户登录等,便需要涉及cookie和session机制,这个同样在requests里面有提供相应的方法。

  • cookie请求的保持


s = requests.Session()
s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get('https://httpbin.org/cookies')
print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'
  • 提供自定义的默认参数


s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})
# both 'x-test' and 'x-test2' are sent
s.get('https://httpbin.org/headers', headers={'x-test2': 'true'})
  • 即使使用会话,方法级参数也不会在请求中持续存在。如果多次请求,则都需要携带参数:


s = requests.Session()
r = s.get('https://httpbin.org/cookies', cookies={'from-my': 'browser'})
print(r.text)
# '{"cookies": {"from-my": "browser"}}'
r = s.get('https://httpbin.org/cookies')
print(r.text)
# '{"cookies": {}}'
  • 请求发送前可以做一些参数的准备工作


from requests import Request, Session
s = Session()
req = Request('GET',  url, data=data, headers=headers)
prepped = s.prepare_request(req)
# do something with prepped.body
prepped.body = 'Seriously, send exactly these bytes.'
# do something with prepped.headers
prepped.headers['Keep-Dead'] = 'parrot'
resp = s.send(prepped,
    stream=stream,
    verify=verify,
    proxies=proxies,
    cert=cert,
    timeout=timeout
)
print(resp.status_code)

总的来说,和直接使用requests的区别在于,是否需要使用有状态的内容。如果每次请求的内容都是独立的,则可以直接使用requests,否则可以借助session的功能官方文档:https://requests.readthedocs.io/en/latest/user/advanced/#session-objects

相关文章
|
4月前
|
Web App开发 数据采集 Java
【Python】已完美解决:selenium.common.exceptions.SessionNotCreatedException: Message: session not created
【Python】已完美解决:selenium.common.exceptions.SessionNotCreatedException: Message: session not created
430 0
|
6月前
|
数据采集 存储 安全
登录态数据抓取:Python爬虫携带Cookie与Session的应用技巧
登录态数据抓取:Python爬虫携带Cookie与Session的应用技巧
|
存储 中间件 数据库
[Python]Django会话保持(cookie & session)(二)
[Python]Django会话保持(cookie & session)(二)
|
存储 安全 数据安全/隐私保护
[Python]Django会话保持(cookie & session)(一)
[Python]Django会话保持(cookie & session)
|
数据采集 Python
python爬虫系列之Session相关知识
python爬虫系列之Session相关知识
|
数据采集 Python
python爬虫中Session 和 cookie的使用
python中如何使用Session 和 cookie 的相关知识。
python爬虫中Session 和 cookie的使用
|
jenkins 持续交付 Python
python接口自动化(十四)--session关联接口(详解)
上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下。
223 0
python接口自动化(十四)--session关联接口(详解)
|
数据安全/隐私保护
python+requests封装session会话
python+requests封装session会话
269 0
python+requests封装session会话
|
数据采集 Web App开发 存储
Python爬虫学习:Cookie 和 Session 的区别是什么?
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。
191 0
|
存储 算法 前端开发
Python Web开发(九):session|token 验证客户端请求
Python Web开发(九):session|token 验证客户端请求
427 0