辽宁大学图书馆座位预约自动化工具 — 快速、精准地抢占目标自习室座位
- 🖥️ 现代化图形界面 — 全新设计的 GUI,采用 Indigo 主题配色,卡片式布局,视觉清爽
- 🧵 多线程并发 — 多账号同时运行,分时段分工,最大化抢座成功率
- 🎯 精确锁定 — 指定座位号 + 时间段,按优先级依次尝试
- 🔐 验证码自动识别 — 登录验证码 OCR + 预约点选文字验证码自动破解(ddddocr 检测+分类双引擎)
- ⏱️ 智能卡点 — 预约时间前 45 秒自动准备,到点分秒不差地满速抢座
- 📧 邮件通知 — 抢座成功后自动发送战报至你的邮箱
- 📸 失败截图 — 预约失败时自动截图保存,方便事后排查
- 🛡️ 底层防休眠与心跳守护 — 运行期间自动调用系统唤醒权限,长达10小时挂机不断网/不休眠,并附带 30 分钟心跳日志
- 🌐 Edge / Chrome 双支持 — 兼容主流浏览器,驱动自动下载
- 📦 EXE 免安装分发 — 下载即用,无需安装 Python
⚠️ 请务必准时到馆签到! 由于自动化速度极快,滥用极易触发学校系统报警。连续或 7 天内累计 3 次违约,将被列入黑名单 7 天!
🔒 隐私提示:仓库内的
config.py默认是脱敏模板(无学号/密码/邮箱)。你的真实信息只会在你本机 GUI 中填写并自动保存,请勿将含个人信息的配置文件提交到 Git。
如果这是一台全新的电脑,你只需要满足以下 3 点即可正常使用:
- 操作系统:Windows 10 或 Windows 11。
- 浏览器:电脑中安装有正常的 Microsoft Edge 或 Google Chrome。程序内置自动驱动匹配功能,不需要你手工查版本下驱动。
- 网络畅通:能正常打开网页进入座位预约系统。
🎯 绝对不需要的东西(繁杂环境都已统一打包进了 EXE):
- ❌ 不需要 下载安装 Python 或任何代码编辑器。
- ❌ 不需要 配置系统环境变量或开启命令行控制台。
无需安装 Python,无需任何编程知识!
- 前往 GitHub Releases 下载最新版
LNU-LibSeat-v2.5.0.zip - 解压到任意位置
- 双击
LNU-LibSeat.exe,在 GUI 界面中填写学号、密码、座位号等(GUI 会自动保存到本地config.py) - 点击「开始抢座」,完事!
# 1. 克隆项目
git clone https://github.com/XUNRANA/LNU-LibSeat-Automation
cd LNU-LibSeat-Automation
# 2. 运行(首次运行 run.bat 会自动创建虚拟环境并安装依赖)
run.bat📖 详细教程请查看 快速上手指南
打开软件后,你需要正确填写以下信息才能顺利抢座:
- 🎯 目标配置:选好你想去的校区和自习室,并填上一到四个你最心仪的座位号。
- 👤 账号时间:填写你的学号和密码(注意:如果没有修改过,初始密码为
000000)。
⚠️ 重中之重:抢座的 "左区间(开始时间)" 你可以填"现在"或者整点(如:9:00),但抢座的 "右区间(结束时间)"必须填整点,比如15:00,否则学校系统是不认的!
- 📧 成功通知:填写你的邮箱地址,任意邮箱都行(只要邮箱存在,抢座成功就会发通知提醒你)。
- ⚙️ 执行模式:选择"立即执行"或"定时执行"。
- 定时执行提醒:这里填写的是 24小时制。如果设置的预约时间大于当前时间,则认为是今天抢座;如果小于当前时间,则认为是明天的抢座!
- 卡点启动说明:系统会非常聪明地在预约时间前 45 秒准时自动拔剑(启动浏览器配置),到了预约时间的 00 秒分秒不差地进行满速抢座!
- 关于静默开关:如果你关闭了"后台静默运行"这个开关,系统在抢座时会光明正大地弹出一个真实的浏览器窗口,你可以亲眼目睹整个浏览器的全自动化抢座详细流程!
💡 上方「📸 真实效果展示」章节中有完整的 GUI 界面截图,可以直观了解操作界面和运行效果。
LNU-LibSeat-Automation/
├── gui.py # 🖥️ GUI 入口(CustomTkinter 现代卡片式界面,Indigo 主题)
├── main.py # 程序核心:多线程调度器与休眠引擎
├── config.py # ⚙️ 配置文件(由 GUI 自动生成,也可手动编辑)
├── run.bat # 一键启动脚本
├── build.py # 📦 PyInstaller 打包脚本
├── _runtime_hook.py # PyInstaller 运行时钩子
├── core/ # 🛠️ 基础设施层
│ ├── driver.py # WebDriver 创建与管理
│ ├── captcha.py # 验证码识别(登录 OCR + 预约点选文字验证码)
│ ├── logger.py # 日志系统(控制台 + 文件轮转 + GUI 回调)
│ ├── notifications.py # SMTP 邮件推送
│ └── utils.py # 时间工具
├── logic/ # 🧠 业务逻辑层
│ ├── auth.py # 自动登录 + 验证码处理
│ ├── navigator.py # 校区切换 + 进入自习室
│ └── booker.py # 选座 + 提交 + 点选验证码 + 结果检测
├── tests/ # 🧪 测试套件
└── docs/ # 📖 文档
├── QUICKSTART.md # 快速上手教程
├── CONFIGURATION.md # 配置详解
└── ARCHITECTURE.md # 架构与开发文档
| 文档 | 说明 |
|---|---|
| 快速上手 | 从零开始的完整使用教程(含 EXE 模式和 Python 模式) |
| 配置详解 | config.py 各字段详细说明与参数含义 |
| 架构文档 | 项目架构设计、模块关系、核心流程、开发者指南 |
普通用户请直接从 Releases 下载,无需自行打包!
python build.py
build.py会自动创建干净的临时虚拟环境,仅安装必需依赖,打包后自动清理。打包过程会自动生成干净的config.py模板,确保不会泄露任何个人信息。
打包完成后 dist/LNU-LibSeat-vX.Y.Z/ 文件夹即为完整的分发包(版本号由 build.py 中的 APP_VERSION 决定):
LNU-LibSeat.exe— 双击运行 GUIconfig.py— 配置模板(首次运行 GUI 后自动覆盖)logs/— 运行日志和失败截图
打包脚本会自动生成 LNU-LibSeat-vX.Y.Z.zip,可直接上传至 GitHub Release。
为了避免因为一时疏忽被拉进黑名单,请务必仔细阅读学校官方的规则:
一、预约方式
- 线上渠道:PC / 移动端登录:libseat.lnu.edu.cn
- 微信:辽宁大学图书馆公众号→服务→座位预约
- 线下渠道:保留原到馆刷卡选座方式
- 登录信息:用户账号为校园卡号,初始密码
000000(可通过校园网至 opac.lnu.edu.cn"我的图书馆" 修改)
二、线上预约规则
- ✅ 预约后需到馆刷校园卡签到,未按时签到记为违约!
- ✅ 允许提前 30 分钟签到,最晚不超过预约时间后 30 分钟。
- ✅ 建议提前 10 分钟签到,特殊情况请务必及时取消预约。
- 🚫 连续或 7 天内累计 3 次违约,将被列入黑名单 7 天!!!
- ⏰ 预约开放时间:每日 6:30 - 21:30(预约当日座位)
- 📊 每日预约 ≤ 3 次,每次最长 6 小时,每天取消 ≤ 3 次。
本项目仅供技术交流与学习,请严格遵守学校图书馆的使用规定与相关条款。使用自动化工具可能违反网站条款或触发防护措施,所有后果由使用者自行承担。
欢迎提交 Issue 和 PR!
本项目采用 MIT 许可证。



