python+selenium+chromdriver 图书馆预约和签到程序

本文介绍了一款基于Python的自动化程序,用于实现图书馆座位的预约与签到功能。该程序利用Selenium操作浏览器进行预约及签到,并通过邮件提醒预约状态。

GMAIL:lianghaioh@gmail.com

更新与纠正(2021/10/13)

程序已集成预约和签到功能。
预约:预约明天的座位
签到:完成今天的预约,需要程序一直保持在后台
通知:邮件提醒

Bug: 周四执行程序时会出现预约错误,原因是图书馆周五下午不开放,目前正在解决,等周四的时候在测试。
相关文件下载

图书馆系统界面

1.预约与管理

在这里插入图片描述

2. 扫码签到

在这里插入图片描述

1. Webdriver安装与配置

1.1 下载 chromedriver

  1. 用chrome浏览器打开 查看版本

  2. 此处下载与版本相对应的chromedriver

  3. 将 chromedriver放在python路径下

  4. 测试是否配置成功

2. 相关python包

pip install selenium
pip install json
pip install smtp

3. 配置文件说明

{
   
   
"userName":"*************",#登录10.240.32.6:8099 的用户名
"password":"************", # 密码
"url":"http://update.unifound.net/wxnotice/s.aspx?c=100601185_Seat_100601462_1FC", # 座位二维码提取出的url,可以在 https://jiema.wwei.cn/ 中提取
"email":"260936@qq.com", # 接受消息的邮箱
"floor":4, # 楼层
"room":3, # 这个在网页上看房间在所在楼层的顺序,从1开始,例如403东的顺序是3
"seatId":86 # 座位的号码
}

4. 说明

4.1 预约

固定时段

[8:00 - 13:00] [13:00 - 18:00] [18:00 - 22:00]

由于周五白天只能预约到12:00。因此,程序在周四当天会出现预约错误。

另外,好久之前的代码了,印象模糊,所以就先将就着用吧。我会直接提供源码

4.2 签到

根据预约时段,程序会在 [8:00] [13:00] [18:00] 自动签到。

4.3 使用说明

在早上8点左右打开程序后直接挂着就行,如果相结合windows设置计划程序,那么需要自行修改程序,直接修改Mains()函数即可。

5. 源代码

from selenium import webdriver
import time
import datetime
import calendar
import smtplib
import json
from email.mime.text import MIMEText

class Lib:
    def __init__(self):
        with open("./default.json") as fp:
            Info = json.load(fp)
            self.user = Info["userName"]
            self.pwd = Info["password"]
            self.url = Info["url"]
            self.email = Info["email"]
            self.floor = Info["floor"]
            self.room = Info["room"]
            self.id = Info["seatId"]
            self.appoint = "http://10.240.32.6:8099/ClientWeb/xcus/ic2/Login.aspx?sys=person"
    '''
    @Date: 2021/09/09
    @Message: Send-Email-Server Default
    '''
    def sendEmail(self,text,remail):
        smtp = "smtp.163.com";
        subject = "图书馆占座"
        sender = "messagesmxy@163.com";  # send email
        pwds = "FYWRZLZFYDNBZLYL";  # security Code
        content = text;  # Message Text
        recver = remail;  # Receive email address
        message = MIMEText(content, "plain", "utf-8");
        message['Subject'] = subject;
        message['To'] = recver;
        message['Form'] = sender;
        smtp = smtplib.SMTP_SSL(smtp, 994);  # 实例化邮箱
        smtp.login(sender, pwds);  # 登录
        smtp.sendmail(sender, [recver], message.as_string())
        smtp.close();
        return 1;
    '''
    @Date: 2021/09/09
    @Message: 返回相应坐标
    '''
    def Dates(self):
        date = []
        year = datetime.datetime.now().year
        month = datetime.datetime.now().month
        day = datetime.datetime
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值