python实现定时登录校园网(解决突然断网)

python实现定时登录校园网(解决突然断网)

背景

学校马上又要放寒假了,想起去年因为疫情导致无法返校,只能通过一些远程工具连接实验室的电脑进行操作。然而校园网经常抽风,动不动就断网一下恢复或者几个小时不用就掉线了。防止掉线的方法可以采用QQ一直处于登录状态解决,然而断网的问题实在太恶心了。为了解决这个问题,想起来可以使用python定时登录来解决,当然,这个方法只能解决短时间断网然后又恢复的问题,解决不了实验室彻底断网的问题。

思路

方法总共就两步:

  1. 实现账号密码登录功能
  2. 定时执行登录任务

账号密码登录

参考linux系统的curl命令,将其转化为python代码,可以参照

具体代码如下

import requests

#设置登录网址
url = '登录网址'

#设置账号密码
data = [
    ('DDDDD', '帐号'),
    ('upass', '密码'),
    ('0MKKey', ''),
]

requests.post(url, data=data)

定时任务

python的定时任务有很多种实现形式,我才用的是schedule库,该库的定时任务清晰易懂。

在使用前要首先通过 pip install schedule安装该库。

schedule.clear()

#设置定时任务
schedule.every(10).minutes.do(job)  # 每隔 10 分钟运行一次 job 函数
schedule.every().hour.do(job)  # 每隔 1 小时运行一次 job 函数
schedule.every().day.at("10:30").do(job)  # 每天在 10:30 时间点运行 job 函数
schedule.every().monday.do(job)  # 每周一 运行一次 job 函数
schedule.every().wednesday.at("13:15").do(job)  # 每周三 13:15 时间点运行 job 函数
schedule.every().minute.at(":17").do(job)  # 每分钟的 17 秒时间点运行 job 函数

#运行该任务
while True:
    schedule.run_pending()  # 运行所有可以运行的任务
    time.sleep(1)

最后

把这二者联合起来就可以实现定时登录了。

另,我是合工大的,因此我写了个完整的合工大校园网定时登录的样例在github:

以上

编辑于 2021-01-13 15:42