AutoLibrary
工具简介
AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,旨在帮助学生简化图书馆座位操作流程,节省宝贵时间。
本工具模拟人工操作,通过简单的界面配置并交互使用。
工具特点
模拟人工操作,不干扰图书馆系统正常运行
支持多账号批量预约
自动处理验证码
准备工作
使用步骤
启动工具
双击运行AutoLibrary.exe文件,工具将启动主界面。
配置工具
对于不同用户的需求,你可以使用两种不同的方式来配置工具
1. 使用界面配置:点击主界面窗口右上角的配置按钮,打开配置窗口。
用户列表
| 功能 | 说明 | 备注 |
|---|---|---|
| 用户列表 | 显示当前配置文件中的所有用户 | 支持添加、删除用户操作,选中用户项进行详细配置 |
用户信息
| 参数 | 说明 | 默认值/可选值 |
|---|---|---|
| 学号 | 用户的学号 | 必填项,用于登录图书馆系统 |
| 密码 | 用户的密码 | 默认值为"000000",首次使用请修改 |
预约信息
| 参数 | 说明 | 默认值/可选值 |
|---|---|---|
| 日期 | 座位预约日期 | 格式:YYYY-MM-DD,默认显示当前日期(18:00-23:00可预约次日) |
| 地点 | 预约座位的地点 | 默认值:"图书馆" |
| 楼层 | 预约座位的楼层 | 默认值:"二层",可选:"二层"、"三层"、"四层"、"五层" |
| 区域 | 预约座位的区域 | 默认值:"二层内环" |
| 座位号 | 预约座位的座位号 | 例如:"12A"、"012a"等 |
| 开始时间 | 预约座位的开始时间 | 格式:HH:mm,默认当前时间,可选范围:7:30-23:30 |
| 结束时间 | 预约座位的结束时间 | 格式:HH:mm,默认当前时间+2小时,可选范围同开始时间 |
| 最大时间偏差 | 时间不可用时的最大偏差范围 | 单位:分钟,可选范围:0-120,0表示严格按选择时间 |
| 优先选择最早/晚 | 当存在多个可选时间时的优先级 | 开始时间优先最早,结束时间优先最晚 |
| 期望时长 | 预约座位的期望时长 | 单位:小时,可选范围:0-8,默认:2小时 |
| 优先满足期望时长 | 是否优先满足时长限制 | 勾选后可能因座位紧张导致预约失败 |
图书馆设置
| 参数 | 说明 | 默认值/备注 |
|---|---|---|
| 访问网址 | 图书馆系统的主机URL | 默认值:http://10.1.20.7,无需更改 |
| 登录页面 | 登录页面的URL路径 | 默认值:/login,无需更改 |
浏览器设置
| 参数 | 说明 | 默认值/可选值 |
|---|---|---|
| 浏览器类别 | 选择使用的浏览器类型 | 支持:Edge Chromium、Google Chrome、Mozilla Firefox |
| 浏览器驱动路径 | 浏览器驱动程序路径 | 通过浏览按钮选择对应版本的浏览器驱动 |
| 无头模式 | 是否隐藏浏览器窗口 | 默认:false(显示窗口),true为隐藏窗口运行 |
登录设置
| 参数 | 说明 | 默认值/可选值 |
|---|---|---|
| 自动识别验证码 | 是否自动处理验证码 | 默认:勾选(推荐) |
| 登录尝试次数 | 登录失败后的最大重试次数 | 默认:3次 |
运行模式
| 功能 | 说明 | 备注 |
|---|---|---|
| 自动预约 | 按配置进行座位预约 | 用户当天无有效预约时执行 |
| 自动签到 | 自动完成图书馆签到 | 满足条件时执行,否则跳过 |
| 自动续约 | 自动延长座位使用时间 | 满足条件时执行,否则跳过 |
当前配置:
| 参数 | 说明 | 操作 |
|---|---|---|
| 系统配置文件路径 | 当前使用的系统配置文件路径 | 可通过浏览按钮选择新的配置文件 |
| 用户配置文件路径 | 当前使用的用户配置文件路径 | 可通过浏览按钮选择新的配置文件 |
导出配置:
| 功能 | 说明 | 操作 |
|---|---|---|
| 导出配置文件 | 将当前配置导出为文件 | 选择目标路径和文件名后点击导出按钮 |
2. 使用配置文件:在脚本可执行文件的根目录创建系统配置文件system.json和用户配置文件users.json。
system.json文件控制工具的基本运行参数:
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| library/ | ||
| ./host_url | string | 图书馆主机URL,无需更改 |
| ./login_url | string | 登录页面URL,无需更改 |
| mode/ | ||
| ./run_mode | number | 运行模式,可组合使用(+1:自动预约) |
| login/ | ||
| ./auto_captcha | boolean | 自动验证码识别,建议保持true |
| ./max_attempt | number | 登录尝试次数,默认3次 |
| web_driver/ | ||
| ./driver_type | string | 浏览器类型(edge/chrome/firefox) |
| ./driver_path | string | 驱动文件路径 |
| ./headless | boolean | 无头模式,默认false(显示浏览器窗口) |
users.json文件控制用户的预约和签到参数:
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| username | string | 学号 |
| password | string | 密码 |
| reserve_info/ | ||
| ./date | string | 预约日期(格式:YYYY-MM-DD) |
| ./place | string | 图书馆或字符"1"(预约图书馆) |
| ./floor | string | 预约楼层
点击查看"2": "二层" "3": "三层" "4": "四层" "5": "五层" |
| ./room | string | 预约区域
点击查看"1": "二层内环" "2": "二层外环" "3": "三层内环" "4": "三层外环" "5": "四层内环" "6": "四层外环" "7": "四层期刊区" "8": "五层考研" |
| ./seat_id | string | 座位编号(例如:"12A/12a/012A/012a") |
| ./expect_duration | number | 期望预约时长(分钟) |
| ./satisfy_duration | bool | 是否满足期望预约时长 |
| /begin_time/ | ||
| ././time | string | 预约开始时间(格式:HH:mm) |
| ././max_diff | number | 最大时间差(分钟) |
| ././prefer_early | bool | 是否优先预约较早的时间 |
| ./end_time/ | ||
| ././time | string | 预约结束时间(格式:HH:mm) |
| ././max_diff | number | 最大时间差(分钟) |
| ././prefer_early | bool | 是否优先预约较早的时间 |
监控运行状态
如果系统设置中没有勾选浏览器无头模式运行,工具会在运行过程中打开浏览器窗口,显示自动运行过程。
除此之外,你还可以通过软件的运行日志输出区域查看详细的运行状态和错误信息。
查看运行结果
软件运行结束后日志会显示本次运行结果:“处理完成, 共计 n 个用户, 成功 n 个用户, 失败 m 个用户”。
功能介绍
自动预约
如果用户当前没有有效预约时,工具会自动为您预约指定座位。
故障排除
常见问题及解决方法
这是大概率是因为浏览器驱动未正确安装或版本不匹配。
- 1,检查驱动文件是否放置在正确位置
- 2,确认驱动版本与浏览器版本完全匹配,例如:Chrome浏览器需要对应版本的chromedriver.exe,切勿混用
- 3,尝试重新下载并安装驱动
请检查配置界面中的账号密码是否正确。
- 1,确认学号和密码无误
- 2,检查是否有不支持的特殊字符需要转义
- 3,尝试手动登录图书馆系统确认账号可用
目标座位可能已被他人预约或不在可预约时间。
- 1,确认座位编号是否正确,是否在该楼层指定区域
- 2,尝试预约其它座位或调整预约时间,例如调整允许的开始或结束时间的最大偏差,位置紧张情况下可以让脚本根据允许的时间范围选择最佳起始时间
常见问题
AutoLibrary完全模拟人工操作,不干扰图书馆系统正常运行。工具不会收集或上传您的个人信息,所有数据仅保存在本地配置文件中。
根据图书馆规定,每个账号同一时间段只能预约一个座位。但您可以在配置界面中添加多个账号,工具会依次处理每个账号的预约请求。
重要:本工具软件旨在简化并辅助用户正常使用时的图书馆服务流程,请勿滥用影响他人及图书馆正常运行。
可以正常使用电脑,但请勿操作工具自动打开的浏览器窗口,否则可能会干扰工具的正常运行。
下载安装
安装步骤
- 下载压缩包并解压到任意文件夹
- 根据您使用的浏览器下载对应版本的驱动
- 按照本手册说明配置账号密码等参数
- 点击启动脚本,即可开始自动预约和使用座位