python-session,实现登录系统的方法,

实现自动登录的办法:

目的:实现输入用户和密码的自动登录,同时发送请求数据
现状:
1.我的登录信息是get方式实现
2.但是cookie信息是一直变化的
解决思路:
一次会话实现两次甚至多次登录,但是使用都是一套session,需要实现第一次登录的时候
自动获取cookie,后续的会话自动更新并且带有新的cookie信息进行访问后续的网址
========================
import json

import requests


"""
目的:实现输入用户和密码的自动登录,同时发送请求数据
现状:
1.我的登录信息是get方式实现
2.但是cookie信息是一直变化的
解决思路:
一次会话实现两次甚至多次登录,但是使用都是一套cookie,需要实现第一次登录的时候
自动获取cookie,后续的会话自动带有这个cookie信息进行访问后续的网址
========================

session的目的完成,同一个会话,同时获取cookie信息,下次的登录的时候自动带去修改后的cookie信息完成登录

注意的地方,这里面需要把原始的cookie内容信息,重新组合成需要的内容后,在下次sesiio的时候带上相应的内容信息
"""

session = requests.Session() # 空白session对象

headres={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"}

#test账户登录成功后的字符串,的登录信息状态的连接字符串

loginurl="https://192.168.3.189:2319/login?code=eyJ1c2Vyb56629yZCI6IkQ3NWVtTXhlQjV23230%34D"

#session对象同时获取cookie信息,第一次访问,后续访问都是这个session
resp=session.get(url=loginurl,headers=headres,verify=False) # 获取cookie存储到session

#拼接登录使用的cookie信息,按照成功登录信息的方式进行组装字符串
#拼接字符串使用的列表
strlist=[]
cookies=resp.cookies   #获取cookie、信息

#遍历cookie信息加入列表,组装成需要的样子,为手动修改cookie下次请求的时候,带上数据
for item in cookies:
    urlstr=f"{item.name}={item.value}"
    print(urlstr)
    strlist.append(urlstr)

print(strlist)
strlist.reverse()    #列表倒叙排序,组装字符串,需要的样子

newstrs=" ;".join(strlist)   #组合新的cookie的值, 把列表里面的数据组装成需要的内容



url = "https://192.168.3.189:2319/tcates"

#手动设置cookie,多个的话就写多行,组装成为新的信息
session.cookies.set('Cookie:',newstrs)

#验证cookie设置的效果是否符合要求
# authresp=session.get(url=loginurl,headers=headres,verify=False) # 获取cookie存储到session
# authcookies=authresp.cookies
# print(authcookies,"验证结果是否正确")



#此时的session发请求带有cookies,该cookie包含手动添加和发起url获得的cookie---->第二次请求
response = session.get(url=url,headers=headres,verify=False)

#获取新的信息
retdics=json.loads(response.text)
print(retdics)