影刀RPA 图书馆管理自动化:图书借阅续借与逾期提醒
作者:林焱 | 分类:影刀RPA新手教程 | 难度:★★
什么情况用
高校/企业图书馆管理员需要定期处理:批量续借、逾期图书催还、新书上架通知。如果有几千册在借图书,每天手动检查哪个快到期了、哪些已经逾期,工作量巨大。
用影刀RPA定时登录图书管理系统,自动续借快到期的书、自动发送逾期提醒邮件给借阅人、自动推送新书信息。管理员从繁琐操作中解脱出来。
怎么做
第一步:了解图书管理系统
国内高校常用系统:汇文、ILAS、金盘、Interlib等。大多数系统有Web管理后台,影刀可以网页自动化操作。如果只有客户端版本,需要用桌面自动化。
以汇文系统为例,Web后台地址一般是 http://图书馆IP:8080/libadmin/。
第二步:批量续借即将到期的图书
影刀操作动作:
- 【打开网页】→ 图书管理系统管理后台
- 【填写】→ 管理员账号密码登录
- 【点击】→ 「流通管理」→ 「当前借阅」
- 【筛选】→ 到期日期 = "未来3天内"
- 【获取元素列表】→ 提取书号、书名、借阅人、到期日
- 【循环】→ 对每本书执行续借
# 影刀Python节点:筛选需要续借的书
from datetime import datetime, timedelta
# 影刀从系统提取的借阅数据
borrowings = [
{"书号": "TP312-001", "书名": "Python编程", "借阅人": "张三", "到期日": "2026-06-30", "续借次数": 0},
{"书号": "TP312-002", "书名": "算法导论", "借阅人": "李四", "到期日": "2026-07-01", "续借次数": 1},
{"书号": "TP312-003", "书名": "数据结构", "借阅人": "王五", "到期日": "2026-06-28", "续借次数": 2},
]
today = datetime.now()
MAX_RENEWAL = 2 # 最多续借2次
renew_list = []
overdue_list = []
for b in borrowings:
due_date = datetime.strptime(b["到期日"], "%Y-%m-%d")
days_left = (due_date - today).days
if days_left < 0:
# 已逾期
overdue_list.append(b)
elif days_left <= 3 and b["续借次数"] < MAX_RENEWAL:
# 3天内到期且还有续借次数
renew_list.append(b)
print(f"需续借:{len(renew_list)} 本")
for b in renew_list:
print(f" {b['书名']} - {b['借阅人']} - {b['到期日']}到期")
print(f"已逾期:{len(overdue_list)} 本")
for b in overdue_list:
overdue_days = abs((datetime.strptime(b["到期日"], "%Y-%m-%d") - today).days)
print(f" {b['书名']} - {b['借阅人']} - 逾期{overdue_days}天")
影刀对renew_list中的每本书执行续借操作:
- 【点击】→ 对应记录的「续借」按钮
- 【等待】→ 系统返回续借成功提示
- 【判断】→ 如果续借失败(已被预约/已达上限),记录原因
第三步:逾期催还
# 影刀Python节点:按逾期天数分级提醒
def overdue_remind(overdue_list, user_contacts):
"""根据逾期天数发送不同级别的提醒"""
for book in overdue_list:
due = datetime.strptime(book["到期日"], "%Y-%m-%d")
days = (datetime.now() - due).days
user = user_contacts.get(book["借阅人"])
if not user:
continue
if days <= 7:
level = "温馨提醒"
msg = f"您好,您借阅的《{book['书名']}》已逾期{days}天,请尽快归还。"
elif days <= 30:
level = "正式催还"
msg = f"催还通知:您借阅的《{book['书名']}》已逾期{days}天,逾期费¥{days*0.2:.1f}元。"
else:
level = "严重逾期"
msg = f"严重逾期通知:您借阅的《{book['书名']}》已逾期{days}天,逾期费¥{days*0.2:.1f}元。请3个工作日内归还,否则将暂停借阅权限。"
print(f"[{level}] {book['借阅人']}: {msg}")
# 影刀操作:发送邮件/企业微信
# 借阅人联系方式(从一卡通系统获取)
user_contacts = {
"张三": {"email": "zhangsan@university.edu.cn", "phone": "138xxxx"},
"李四": {"email": "lisi@university.edu.cn"},
}
第四步:新书上架自动通知
# 影刀Python节点:匹配读者兴趣推新书
new_books = [
{"书名": "深度学习实战", "分类": "TP18", "关键词": ["深度学习", "PyTorch"], "上架日期": "2026-06-28"},
{"书名": "材料科学基础", "分类": "TB3", "关键词": ["材料", "纳米"], "上架日期": "2026-06-28"},
]
# 读者兴趣标签(从历史借阅分析)
reader_interests = {
"张三": ["Python", "人工智能", "深度学习"],
"李四": ["算法", "数据结构"],
"赵六": ["材料", "纳米"],
}
for book in new_books:
interested_readers = []
for reader, interests in reader_interests.items():
if any(kw in " ".join(book["关键词"]) for kw in interests):
interested_readers.append(reader)
if interested_readers:
print(f"《{book['书名']}》可能感兴趣的读者:{', '.join(interested_readers)}")
# 影刀推送新书通知给这些人
第五步:生成图书馆运行报告
# 月报统计
report = {
"本月借阅量": 1234,
"本月归还量": 1109,
"当前在借": 3500,
"逾期未还": 47,
"逾期率": "1.3%",
"最受欢迎TOP5": ["Python编程", "算法导论", ...],
"新书上架": 86,
}
影刀【写入Excel】生成月报。
有什么坑
坑1:图书管理系统的老旧和兼容性
很多高校的图书管理系统是十几年前开发的,只支持IE浏览器。影刀的自动化浏览器默认是Chrome内核,可能无法正常显示。需要切换到IE模式或用桌面自动化模拟点击。
坑2:续借操作可能失败
续借失败的原因很多:已被其他读者预约、已达最大续借次数、借阅证已过期、有未缴罚款……影刀需要对每种失败原因做不同处理,而不是简单地"续借失败→跳过"。
坑3:读者联系方式可能不准确
一卡通系统里的邮箱可能是学生入学时登记但从未使用过的。如果逾期催还邮件发出去了没人看,等于白提醒。建议多渠道提醒:邮件+微信(如果接入了微信图书馆)+短信(重大逾期)。
坑4:寒暑假借阅规则特殊
大学图书馆寒暑假期间借阅期限通常会延长,自动化流程需要在假期前切换规则。建议用影刀的全局变量开关控制:IS_VACATION_MODE = True 时跳过逾期判定。
坑5:并发操作锁
如果管理员同时在手动操作系统,RPA也在自动操作,可能导致数据冲突。建议自动化流程安排在非工作时间运行(如每天早上6:00)。
总结:图书馆管理自动化的关键是异常处理要全面——借书、还书、续借、预约、罚款,每种操作都有失败的可能。RPA要覆盖主要场景,异常场景留下人工处理入口。