许多时候会遇到一些页面需要登录后才能查看,这时可能会需要用到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() 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) 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)
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: 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
未找到相关的 Issues 进行评论
请联系 @mmmwhy 初始化创建