登录模块
2026/2/11大约 2 分钟
登录模块
注意
由于智学网人机验证升级,传统的账号密码直接登录方式已不再适用。目前推荐以下两种登录方式。
Playwright 登录
该方式会调用 Playwright 库打开浏览器,允许您手动完成人机验证后再继续。
安装依赖
在使用此方法前,请确保已安装 playwright 并下载对应的浏览器引擎:
pip install playwright
playwright install chromium使用方法(假定为学生账号)
from zhixuewang.account import login_playwright
# 运行后会打开浏览器
# 请在浏览器中手动完成滑块或其他人机验证
zxw = login_playwright("您的智学网账号", "您的智学网密码")
print(zxw.get_self_mark())Cookie 登录
如果您已经在网页端登录了智学网,可以直接手动获取 Cookie 进行登录。
使用方法
from zhixuewang.account import login_cookie
# 将获取到的 cookies 字符串传入
zxw = login_cookie(cookies)
print(zxw.get_self_mark())获取 Cookie
Cookie 可以在登录智学网网页端后用以下 JS 书签快速获取。
JS 书签代码:
javascript:(function(){function getCookies(){return document.cookie;}function copyToClipboard(text){const textarea=document.createElement('textarea');textarea.value=text;document.body.appendChild(textarea);textarea.select();document.execCommand('copy');document.body.removeChild(textarea);}const cookies=getCookies();copyToClipboard(cookies);alert('Cookies 已复制到剪切板!');})();提示
复制上述代码,在浏览器书签管理器中新建一个书签,地址栏(URL)填写该代码即可。登录智学网后点击该书签,Cookie 将自动复制到您的剪贴板。
账号类型转换
登录后会返回对应类型的账号对象(StudentAccount、TeacherAccount 或 ParentAccount)。为了更好的类型提示支持,库提供了类型转换方法。
类型转换方法
from zhixuewang import login_cookie
# 登录(自动识别账号类型)
account = login_cookie(cookies)
# 类型转换方法(仅用于类型提示,不做实际操作)
student_account = account.to_student() # 转换为 StudentAccount(如果是学生)
teacher_account = account.to_teacher() # 转换为 TeacherAccount(如果是教师)
parent_account = account.to_parent() # 转换为 ParentAccount(如果是家长)使用说明
类型提示
to_student()、to_teacher()、to_parent() 方法仅用于类型提示(Type Hinting),不会执行任何实际操作。
- 如果账号类型匹配,方法返回自身
- 如果账号类型不匹配,调用会抛出
NotImplementedError异常 - 这些方法主要用于 IDE 智能提示和类型检查
示例
from zhixuewang import login_cookie
account = login_cookie(cookies) # IDE 只知道是 Account 类型,但实际是继承它的 StudentAccount 类型
student = account.to_student() # IDE 现在知道这是 StudentAccount 类型
mark = student.get_self_mark() # IDE 可以正确提示 StudentAccount 的方法