IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 校园网自动登录脚本 -> 正文阅读

[Python知识库]校园网自动登录脚本

作者:commentBox

问题背景

校园网连上后需要手动登录认证后才能正常使用

校园网登陆界面

解决方案

模拟请求URL(不好用)

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

这种可以成功,但并不总能成功,主要问题可能是这个请求的URL每次都是变化的,导致会失效,于是更推荐下面的更稳定的方案

通过selenium库模拟登录过程

主要步骤
  • 需要下载一个驱动来打开浏览器
    我用的是谷歌浏览器驱动,也可以用其他浏览器的驱动前提是你要有对应的浏览器,驱动版本需要对应你的浏览器的版本号
    谷歌浏览器驱动下载地址
    查看谷歌浏览器版本号(也可以在设置里面查看)
    在这里插入图片描述
  • 模拟登录过程
    通过selenium库对登录界面的一些元素进行定位,这里面主要就是定位账号密码输入框并进行输入。具体元素的id或者名称可以通过查看登录界面的前端代码得知。
代码
# 湖北工业大学校园网自动登录脚本
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:\Desktop\code\Python\xywLogin\chromedriver.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()

这样就能实现运行一次脚本在后台自动登录一次校园网了
再结合计算机自带的任务启动程序,就可以实现每次解锁锁屏的时候自动登录校园网

配置每次打开屏幕时自动登录

  • 打开任务计划程序(电脑自带)

在这里插入图片描述

  • 创建任务在这里插入图片描述
  • 常规
    在这里插入图片描述
  • 触发器内新建触发器
    在这里插入图片描述
  • 操作里新键操作(此步填入脚本的位置)
    在这里插入图片描述
  • 条件里也可以简单设置一下在这里插入图片描述

运行起来可能会有驱动的黑框,解决方法可以参考这篇文章

http://t.csdn.cn/bijwg

至此可以实现每次解锁电脑时自动登录校园网,未登录状态时锁屏再解锁电脑即可


由于近期校园网总是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检查一次网络状态

先写这么多,如果有需要可以再讨论,如果不想看代码想直接白嫖现成脚本软件的也可以与我联系。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:28:59  更:2022-10-17 12:29:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:37:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计