校园网自动重连,还你一个一直在线的服务器

人在国外,但是需要一直借用国内的服务器炼丹,因此经常需要用teamviewer登陆国内的服务器。奈何国内校园网经常自动断线,再加上和国内有15个小时的时差,经常国内的小伙伴打开电脑后,我都是过了好几个小时睡起来后才去看,结果早就断线了。有个师兄曾经跟我说过,当一件事情需要重复干三遍以上时,就需要考虑用程序来代替。因此,我经过一番摸索,找到了合适的断网自动重连的方法,从此再也不用担心我的丹炉会掉线了。

先上代码链接:

接下来解释下需要下载的driver和修改的代码内容:

  • pip安装selenium包:
pip install selenium
  • 下载webdriver firefox内核(python可以操控的浏览器,跟我们平时用的浏览器不同,代码中使用Firefox的driver),下载地址:
  • 解压缩下载的文件到一个文件夹,如果是linux则复制到/usr/bin/geckodriver, 如果是windows则手动添加环境变量,这样python运行时可以找到这个driver。linux 复制该driver的代码:
sudo cp geckodriver /usr/bin/geckodriver
  • 修改代码的校园网用户名,校园网密码,校园网登陆地址,校园网用户名输入控件ID,校园网密码输入控件ID,以及校园网连接控件ID。以上几个ID都可以通过查看网页源码得到。
username_str = "****" # 你的校园网登陆用户名
password_str = "****" # 你的校园网登陆密码

can_connect = True

def login():
    try:
        driver = webdriver.Firefox()
        driver.get("http://net.********.edu.cn") # 你的校园网登陆地址
        time.sleep(3)
        username_input = driver.find_element_by_id("uname") # 校园网登陆用户名的输入控件ID, 浏览器上右键查看网页源代码查询
        password_input = driver.find_element_by_id("pass") # 校园网登陆密码的输入控件ID, 浏览器上右键查看网页源代码查询
        print('Searching connect')
        login_button = driver.find_element_by_id("connect") # 校园网登陆连接的点击控件ID, 浏览器上右键查看网页源代码查询
        print('Find connect successfully')
        username_input.send_keys(username_str)
        password_input.send_keys(password_str)
        print('Input user info')
        login_button.click()
        print('Connect')
    except:
        print(getCurrentTime(), u"登陆函数异常")
    finally:
        driver.close()
  • 运行代码:
python main_webdriver.py
  • 接下来可以试试手动登出校园网,看看程序是否自动连接成功。

References:blog.csdn.net/zcy0xy/ar

编辑于 2019-07-18 06:47