session与cookie使用记录
in Linux with 0 comment

session与cookie使用记录

in Linux with 0 comment

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

seesion登录方式

首先定义好header格式:

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放入该对象内:

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

接下来就可以登录了:

s.post("https://superbear.cc/dologin.php", {'username':'@qq.com', 'password': '12345'})

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

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

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

Responses

From now on, bravely dream and run toward that dream.
陕ICP备17001447号·苏公网安备 32059002001895号