首页 » 谷歌 » 校园网连上后需要手动登录认证后才能实现运行一次脚本

校园网连上后需要手动登录认证后才能实现运行一次脚本

 

谷歌锁区号/谷歌邮箱老号-购买商城
谷歌play地区代改
Google Voice号码支持自助购买
谷歌锁区号购买商城]
美区VISA卡代开-可以用于aws,azure,FB,谷歌,亚马逊,速卖通,eBay,独立站,paypal等支付
如果您还有其他问题可以加我电报交流。
电报号:telegram:@tianmeiapp

问题背景

校园网接入后,需要手动登录并认证后才能正常使用。

校园网登陆界面

方案模拟请求URL(不好用)

URL

可以看到登录时请求的URL并不简单

这可以成功,但并不总是成功。主要的问题可能是请求的URL每次都改变,会导致失败。因此,建议使用以下更稳定的解决方案。

通过库模拟登录过程的主要步骤代码

# 湖北工业大学校园网自动登录脚本
from selenium.webdriver.common.by import By  # 解决browser.find_element_By_
from time import sleep
# 打开浏览器
from selenium.webdriver.chrome.options import Options  # 解决不打开浏览器问题
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
# 校园网ip
login_ip = "http://202.114.177.246"  # 湖工大校园网ip
# 配置
username = "2010301019"  # 账号
password = "XXXXXX"  # 密码
yys = "@cucc"  # 运营商(通过下方对应关系来确定符号)
# 联通-> "@cucc"
# 移动-> "@cmcc"
# 电信-> "@ctcc"
# 校园网->""
def login():
    # 配置浏览器
    options = Options()
    options.add_argument('headless')  # 隐藏浏览器
    # 获取驱动
    service = ChromeService(executable_path=r"D:DesktopcodePythonxywLoginchromedriver.exe") # 具体地址为下载的浏览器驱动所在位置
    driver = webdriver.Chrome(service=service, options=options)
    # 启动浏览器
    driver.get(login_ip)
    # 设置定位等待时间(因网速原因需要等待网页加载好)
    driver.implicitly_wait(3)
    # 判断是否已经登录,已经登录则直接退出
    try:
        driver.find_element(By.ID, "logout")
        print("already login")
        driver.quit()
        return
    # 通过捕获"找不到登出元素异常"来判断未登录
    except Exception as e:
        print("no login")
    # 设置定位等待时间
    driver.implicitly_wait(1)
    # 定位输入账号处并输入账号
    driver.find_element(By.ID, "username").send_keys(username + yys)
    # 定位密码并输入密码
    driver.find_element(By.ID, "password").send_keys(password)
    # 定位登录并点击登录
    driver.find_element(By.ID, "login-account").click()
    # 设置定位等待时间
    sleep(1)
    # 关闭浏览器
    driver.quit()
if __name__ == '__main__':
    login()

这样就可以在后台运行脚本一次自动登录校园网。

结合电脑自带的任务启动程序,每次解锁锁屏都可以自动登录校园网。

配置每次亮屏自动登录

在这里插入图片描述

运行时可能会出现驱动程序黑匣子。解决方法请参考这篇文章

此时可以在每次解锁电脑时自动登录校园网,未登录时锁屏再解锁电脑。

由于最近校园网老是gank学生(意思是老是断网),本来打算每次断网时触发这个脚本实现自动登录,但是没找到合适的触发条件。暂时能想到的唯一办法就是,每隔几秒检查一次网络状态谷歌里购买账号密码错误,这个是可以实现的,但是需要消耗一定的运行内存不断检查,不推荐。

代码

# 需要结合上面的代码
# 判断网络状态
from subprocess import run, PIPE
def judge_net_state():
    cnt = 1
    while True:
        # ping一次百度来判断网络状态
        r = run('ping www.baidu.com',
                stdout=PIPE,
                stderr=PIPE,
                stdin=PIPE,
                shell=True)
        # 当网络异常时重新登录网络
        if r.returncode:
            login()  # 这里写login函数
            print('relogin 第{}次'.format(cnt))
            print(time.localtime())
            cnt += 1
        # print('正常联网')
        sleep(10)  # 每10s检查一次网络状态

先写这么多谷歌里购买账号密码错误,有需要的可以稍后再讨论。如果不想看代码,想买现成的脚本软件,也可以联系我。

谷歌锁区号/谷歌邮箱老号-购买商城
谷歌play地区代改
Google Voice号码支持自助购买
谷歌锁区号购买商城]
美区VISA卡代开-可以用于aws,azure,FB,谷歌,亚马逊,速卖通,eBay,独立站,paypal等支付
如果您还有其他问题可以加我电报交流。
电报号:telegram:@tianmeiapp

原文链接:校园网连上后需要手动登录认证后才能实现运行一次脚本,转载请注明来源!

0