云南大学校园网断网后重连python脚本

学校校园网总是在早上五点断开,对有远程办公需求的打工人来说,很伤脑筋。
在这里插入图片描述
我尝试在网上找了实现自动登录校园网的教程,发现基本都是用post实现自动登录的,但我们学校的官网是用get实现登录的,搞了半天终于登录成功了,但只是session.get返回内容是说我登录成功了,电脑还是没连上网,就特别难受。不知道是不是还有一堆奇怪的js请求没有模拟出来的缘故。
在这里插入图片描述

既然这么麻烦,我就干脆就用selenium 模拟浏览器的操作,最后登录成功了,以下是代码。其中使用的谷歌浏览器驱动器链接如下,driver和exe都能从里面找到Chrome for Testing availability

# 自动检查当前网络是否断网
# 如果断网,则连接网络
# 如果没有断网,则等15分钟后继续判断是否断网
import time
import subprocess
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


# 检查网络状态
def is_network_connected():
    try:
        response = subprocess.run(['ping', 'cn.bing.com'], capture_output=True, text=True)
        return '丢失 = 0' in response.stdout
    except subprocess.CalledProcessError:
        return False


# 校园网登录函数
def login_to_campus(driver):
    #  打开登录界面
    driver.get('http://www.msftconnecttest.com/srun_portal_pc?ac_id=0&theme=pro')
    driver.get('http://www.msftconnecttest.com/srun_portal_pc?ac_id=0&theme=pro')

    username_input = driver.find_element_by_id('username')
    password_input = driver.find_element_by_id('password')
    username_input.send_keys('账号')
    password_input.send_keys('密码')

    login_button = driver.find_element_by_id('login-account')
    login_button.click()

    driver.implicitly_wait(5)

    try:
        logout_button = driver.find_element_by_id('logout')
        if logout_button:
            print('Successfully login to campus network...')
            status = True
        else:
            print('Fail to logging, try to login again...')
            status = False
    except:
        print('Unknown error!')
        status = False
    return  status


if __name__ == "__main__":
    status = is_network_connected()
    while True:
        if is_network_connected():
            print('Network is connected! Waiting for 15 minutes...')
            time.sleep(900)
            status = True
        else:
            print('Network is not connected! Logging to campus network...')
            #  创建浏览器实例
            driverpath = r"C:\Program Files\Google\Chrome\Application\chromedriver-win64\chromedriver.exe"
            driver = webdriver.Chrome(driverpath)
            # 登录校园网
            status = login_to_campus(driver)
            # 如果网络已连接,关闭浏览器 如果网络断开,继续重新连接
            while not status:
                status = login_to_campus(driver)
            # status为True时跳出循环, 关闭浏览器
            driver.implicitly_wait(10)
            driver.quit()
            print('Close Chrome browser...')

运行成功
在这里插入图片描述
接着可以通过pyinstaller安装包将脚本打包成exe文件,命令行运行一下代码。

>conda install pyinstaller #安装pyinstaller
>pyinstaller --onefile moni_chrome.py # 打包文件到exe

运行成功
在这里插入图片描述
在这里插入图片描述
运行moni_chrome.exe成功
在这里插入图片描述
以上仅供学习交流,祝各位工作顺利,生活幸福!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值