Python实现校园网自动连接

用过校园网的小伙伴可能深有体会,在连接上校园网之后,需要再进行一个用户认证,才算真正的连接成功。这就会带来一些问题,比如若在长时间内没有网络请求,用户认证就会失效,它会自动断开校园网,这时,需要重新认证才能解决。我看了眼上网明细,发现系统喜欢在夜里3:00悄眯地下线,主打一个神不知鬼不觉~Python实现校园网自动连接_第1张图片

 这对于一些经常需要远程控制桌面的小伙伴并不方便,连不上网自然也就无法在这边进行重连。我们学校的认证界面如下。解决的办法也很简单,只需要写一个代码,实现在指定时间内打开校园网认证的网页,输入账号密码并点击登录即可。

Python实现校园网自动连接_第2张图片


第一步,你需要一个谷歌浏览器,并安装对应版本的驱动。

在设置里的“关于Chrome”里面可以看到自己的版本号Python实现校园网自动连接_第3张图片

 然后在https://sites.google.com/chromium.org/driver/downloads下载合适的驱动版本,版本号相近即可,我下载的是第一个Python实现校园网自动连接_第4张图片

Python实现校园网自动连接_第5张图片

解压后得到两个文件,放到谷歌浏览器的目录下 。这里chromedrive.exer的路径需要放到后面的代码中

Python实现校园网自动连接_第6张图片第二步,运行代码。

我是用Python写的,代码如下 

from selenium import webdriver
import time

# 设置要打开的时间
open_time = "2023-07-14 18:00:00"

# 等待到指定时间再执行后续代码
while True:
    current_time = time.strftime("%Y-%m-%d %H:%M:%S")
    print(current_time)
    if current_time >= open_time:
        break
    time.sleep(60)  # 每隔60秒循环一次

# 用谷歌浏览器实现
driver = webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")  # 双引号内放的是刚刚解压出来的chromedriver.exe的地址
driver.get("XXX")  # 将XXX换成校园网的网址
time.sleep(3)  # 打开网页后等待3秒再点击登录
try:
    username_box=driver.find_element_by_id("username")
    username_box.send_keys("XXX")  # 将XXX换成你的账号
    password_box = driver.find_element_by_id("password")
    password_box.send_keys("XXX")  # 将XXX换成你的密码
    btn = driver.find_element_by_id("login-account")
    btn.click()
except Exception:  # 本来就处于登录的状态
    print("wrong: it has been connected!")
    pass
else:
    print("connection successful!")
time.sleep(1)

注意:

  • 需要selenium库的支持。
  • 代码中XXX的部分需要根据注释进行替换成你自己的。
  • 此代码根据 id 属性来定位网页上的输入框和按钮,id 属性从网页的源代码(按F12)中得到,获取方法不再赘述。也可以使用xpath、class等属性来定位,想了解的朋友可以看这里用Python点击网页按钮_笔记大全_设计学院。

 当然,它只实现了在某一个时间点进行自动连接,过了这个时间点之后,需要我们重新设置下一次自动连接的时间。这在某些场景下仍然不够方便,如果改成每天都在两个特定的时间点(比如早6和晚6)各尝试连接一次,就更好了。感兴趣的朋友可以在此代码的基础上进一步改进。

你可能感兴趣的:(Python,python,日常生活小问题)