session与cookie使用记录

许多时候会遇到一些页面需要登录后才能查看,这时可能会需要用到session服务。

seesion登录方式

首先定义好header格式:

1
2
3
4
5
6
7
headers = {
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
'Accept-Encoding':'gzip, deflate',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Referer':'https://superbear.cc/clientarea.php',
'Connection':'keep-alive'}

然后生成session对象s,将headers放入该对象内:

1
2
s = requests.session()  # 可以在多次访问中保留cookie
s.headers.update(headers)

接下来就可以登录了:
1
s.post("https://superbear.cc/dologin.php", {'username':'@qq.com', 'password': '12345'})

如果不想使用s.headers.update(headers)的话,也可以通过

1
2
s.post("https://superbear.cc/dologin.php", {'username':'@qq.com', 'password': '12345'}, headers=headers)  # POST帐号和密码,设置headers
r = s.get("https://superbear.cc/modules/servers/solusvmpro/get_client_data.php?vserverid=438&_=1554179275325") # 已经是登录状态了

把header放到post里边的形式

读取cookies

频繁的进行登录操作,可能会被视作异常行为。所以可以把cookies保存下来,每次调用的时候直接读取cookies即可。请求的时候检查返回内容,如果内容提示未授权,则重新登录获得新的cookies

1
2
3
4
5
6
7
8
9
10
11
12
13
with open('superbear.cookie', 'rb') as f:
old_cookie =pickle.load(f)

# 获取cookies
s.cookies.update(old_cookie)
r = s.get("https://superbear.cc/modules/servers/solusvmpro/get_client_data.php?vserverid=8&_=155") # 已经是登录状态了
if 'Unauthorized' in r.text:
# cookies 过期了,重新登录
print("cookies 过期了")
s.post("https://superbear.cc/dologin.php", {'username':'@qq.com', 'password': '12345'})
r = s.get("https://superbear.cc/modules/servers/solusvmpro/get_client_data.php?vserverid=8&_=15123") # 已经是登录状态了
with open("superbear.cookie",'wb') as f:
pickle.dump(s.cookies,f)

发送

使用server酱或者邮件发送jike

session与cookie使用记录

https://iii.run/archives/38553c71e186.html

作者

mmmwhy

发布于

2019-04-03

更新于

2021-05-30

许可协议

评论