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)