#禅道登录
#1.MD5加密逻辑:md5(md5(password)+rand())
#2.password : quickon4You
import requests
s = requests.Session() #保持会话
#获取rand
rand_url = 'https://zentao.demo.qucheng.cc/index.php?m=user&f=refreshRandom'
header_rand = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"referer": "https://zentao.demo.qucheng.cc/index.php?m=user&f=login&referer=L2luZGV4LnBocD9tPW15JmY9aW5kZXg=",
"x-requested-with": "XMLHttpRequest"
}
res_rand = s.get(rand_url, headers=header_rand)
print(res_rand.text)
#调用js
password = 'quickon4You'
from encrypt import ExecJs
e = ExecJs()
s1 = e.get_encrypt_pwd('md5',password)
s2 = e.get_encrypt_pwd('md5',s1 + res_rand.text)
url = 'https://zentao.demo.qucheng.cc/index.php?m=user&f=login'
data = {
"account":"demo",
"password":s2,
"passwordStrength":"0",
"referer":"/",
"verifyRand":res_rand.text,
"keepLogin":"1",
"captcha":"",
}
header = {
"host": "zentao.demo.qucheng.cc",
"content-length": "765",
"sec-ch-ua-platform": "macOS",
"x-requested-with": "XMLHttpRequest",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"sec-ch-ua": 'Not)A;Brand;v="8", Chromium;v="138"',
"sec-ch-ua-mobile": "?0",
"accept": "*/*",
"origin": "https://zentao.demo.qucheng.cc",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://zentao.demo.qucheng.cc/index.php?m=user&f=login&referer=Lw==",
"accept-encoding": "gzip, deflate, br, zstd",
"accept-language": "zh-CN,zh;q=0.9",
"priority": "u=1, i",
}
res4 = s.post(url,data=data,headers=header)
print(res4.text)核心机制:Session 对象会自动存储服务器返回的 Cookie,并在后续请求中携带这些 Cookie,无需手动处理。例如,登录后访问需要认证的页面时,Session 会自动发送登录凭证
应用场景:适用于需要登录的网站(如禅道、电商平台),避免每次请求重复认证