非图形化Linux发行版登录校园网方法——使用python3,selenium,chromium,chromium-driver。

这篇具有很好参考价值的文章主要介绍了非图形化Linux发行版登录校园网方法——使用python3,selenium,chromium,chromium-driver。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面:

        使用非图形化的Linux发行版登录校园网,属实有点让人头疼的,我在网上找到了通过wget发送数据包的方法来登录校园网,但是个方法在我的学校行不通,我学校的校园网不支持发送数据包来登录的,于是我去找“校园网管理中心”的人对线,得到的却是“你不会开热点吗?”这个及其下头的回答。。。。。。

        所以,我觉定自己动手,丰衣足食。

        我选择了一个比较“蠢笨”的做法,其实现原理基本和正常登录网页靠手点和键盘输入一样,虽然短时间的性能开销是比较大的,但是经过我一段时间的使用,没有出过问题,其可靠性还是比较高的。

接下来,我们统一一下软件:

1.系统:Debian11,我是用的是Debian,Linux系统大差不差。

2.网络管理软件是:Network Manager

如果你本来就是这个管理软件,那就不用下面的命令进行安装了。

哦对咯,这边还是建议你连一下热点来下载软件。。。。。。

Debian & Ubuntu 命令:

sudo apt install network-manager

3.Python3pip:不会有人Linux上不装python吧?

Debian & Ubuntu 命令:

sudo apt update
sudo apt install python3 pip

如果下载慢,请自行搜索 "linux换源"

4.selenium:Python插件,用于控制浏览器

pip install selenium

如果下载慢,请自行搜索 "pip换源"

5.chromiumchromium-driver

Debian & Ubuntu 命令:

sudo apt install chromium chromium-driver

软件要求就是这些。

Python脚本:

直接上代码:

import os
import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options


# 使用系统命令写入日志时间
os.system("date >> /root/Mylogs/Services.log")

# 打开日志文件
log = open("/root/Mylogs/Services.log", 'a')

# 设置chrome启动参数
option = Options()
option.add_argument('--headless')
option.add_argument('--disable-gpu')
option.add_argument('--no-sandbox')

# 获取当前时间
ntime = datetime.datetime.now()

# 校园网登录URL
LoginPageUrl = "http://10.51.3.40/srun_portal_pc?ac_id=2&theme=basic1"
# 网络运营商 "@cmcc":移动 "@cuc":联通 "@dianxin":电信 "@jifang":机房 "@studentfree":爱心免费网络 "@teacher":办公
NetType = "@cmcc"
# 账号
account = "你的账号"
# 密码
password = "你的密码"


# ConnectTest 通过nmcli命令返回值,获取有没有连接校园网
def CntTest() : return os.system('nmcli dev | grep "JHC-WLAN"')


# Ping测试获取有无网络
def PingTest() : return os.system("ping -c 2 -w 3 baidu.com") # 要求两个数据包,限时3秒


# 连接 JHC-WLAN
def CntWifi() :

	# 校园WiFi没有连接,日志写入 “连接校园网”
	log.write("Connecting JHC-WLAN\n")

	# 使用系统命令连接校园网
	os.system("nmcli device wifi connect JHC-WLAN password 12345678")


# 登录这个愚蠢的校园网
def LoginSBXYW() :

	# 日志写入 “校园网没有登录,登录校园网”
	log.write("Logging into SBXYW\n")

	# 打开登录校园网界面
	driver = webdriver.Chrome(options=option)
	driver.get(LoginPageUrl)
	time.sleep(5)

	# 输入账号
	driver.find_element(By.XPATH, '//*[@id="username"]').send_keys(account)

	# 下拉框选择 “移动”
	elem = driver.find_element(By.XPATH, '//*[@id="domain"]')
	Select(elem).select_by_value(NetType)

	# 输入密码
	driver.find_element(By.XPATH, '//*[@id="password"]').send_keys(password)

	# 点击登录
	driver.find_element(By.XPATH, '//*[@id="login-account"]').click()

	# 给浏览器时间反应一会儿
	time.sleep(2)


# TryConnectNet 尝试连接网络
def tryCntNet() :

	# 如果没有连接校园WiFi
	if CntTest() != 0 :

		# 日志写入 “校园WiFi未连接”
		log.write("JHC-WLAN not connected\n")
		# 连接校园WiFi
		CntWifi()

		# 如果已经连接校园WiFi之后依然没网络,则尝试登录校园网
		if PingTest() != 0 :

			# 日志写入 “SB校园网没有登录”
			log.write("SBXYW not logged\n")
			# 登录SB校园网
			LoginSBXYW()

		# 说明已经有网络了,直接返回 int 0
		else : return 0

	# 校园WiFi已经连接,尝试登录校园网
	else : LoginSBXYW()

	# 返回Ping测试值
	return PingTest()


if __name__ == '__main__' :

	# 在早上6点开始,执行网络检测
	if ntime.hour >= 6 :

		# 用于存储尝试连接网络的返回值
		rtword_fromTry = 0

		# 如果Ping测试没有通过,说明没有网络
		if PingTest() != 0 :

			# 日志写入 “Ping测试没有通过”
			log.write("PingTest NOT PASS\n")

			# 尝试连接网络并存入返回值
			rtword_fromTry = tryCntNet()

		else :

			# 有网
			log.write("PingTest OKay\n")

		# 如果尝试连接网络的返回值不为0,说明网络连接失败,写入日志之后退出程序
		if rtword_fromTry != 0 :

			# 联网失败
			log.write("Failed\n")

	# 如果不是早上6点,晚安~
	else :

		log.write("Nighty night~~~\n")

# 关闭日志
log.close()

Python脚本的注释就算是讲解,登录的校园网是以JHC为例的,脚本的部分内容因学校而异,JHC的同学在软件相同的情况下几乎可以照搬,非JHC的同学,注意修改LoginSBXYW()中通过XPATH找到对应网页元素,并操作数据的代码,关于如何通过XPATH找到对应网页元素,很简单的,自己网上找一下吧。。。。。。代码里的时间判断和日志写入,主要用于crontab自动化,可以直接忽略这个部分。

还有,需要注意的是如果你给你的Linux安装Network Manager,可能会和原来的网络管理软件冲突,这个需要注意,但我个人觉得这个软件是比较好用的。

写在最后:

本人并没有专心学过Python,老师教的Python知识也是非常基础的,完全不够写这个脚本用,所以,我是现学现做的这个Python脚本,如果有什么代码上的问题,可以直接喷我;JHC用的校园网管理系统是深澜,如果你有更好的登录校园网的方法,也欢迎直接砸我脸上。

补充:

我发现日志写入(文件读写),在函数内似乎没有产生效果,原来是在有返回值(或者以return结束)的函数内没有生效,也就是那块内存在返回时就被“释放”了,这。。。。。。需要注意哈。文章来源地址https://www.toymoban.com/news/detail-768758.html

到了这里,关于非图形化Linux发行版登录校园网方法——使用python3,selenium,chromium,chromium-driver。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程】路由器自动定时登录校园网

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 目录 前景提要 Python脚本 Shell脚本(推荐) 路由器挂机 实现效果 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改) 【教程】保姆级红米AX6000刷UBoot和OpenWrt固件 详解OpenWrt路由器设置Crontab定时检查网络并重启 现

    2024年02月07日
    浏览(32)
  • 【edusrc】某校园网登录系统存在的一个简单爆破

    该漏洞已修复 马上又要发工资了,两个月只挖了一个半洞拿四佰让我有点挂不住脸 没啥思路,正百无聊赖刷B站,突然视频缓冲中。 一看,超。校园网寄了,又要交钱。 众所周知某校的校园网像shit 可是不续的话流量也限速了。 nnd,爷不装了。看看能不能实现白嫖校园网。

    2024年02月04日
    浏览(49)
  • 小米手机连接校园网无法跳转到登录界面

    问题: 小米手机 MIUI12 系统,在连接校园网后显示需要登录,但是无法跳转到登录界面。连接其他wifi是没有问题的,但凡是需要登录的wifi就不行,会出现 net:ERR_CONNECTION_RESET... 试过很多方法,感觉这可能是个玄学,但是都试一试,或许哪个就可以了呢ahh 1. 一试就可以成功跳

    2024年02月10日
    浏览(31)
  • Win11校园网不弹出登录页面怎么回事?

    Win11 校园网不弹出登录页面怎么回事?最近有用户在使用校园网的时候遇到了一些问题,访问登录网站的时候,一直无法显示登录的界面。那么遇到这个情况如何去进行解决呢?一起来看看以下的解决方法分享吧。 解决方法如下: 方法一: 1、按下键盘上的win+i组合键打开系

    2024年02月07日
    浏览(29)
  • 定时开机、自动登录Microsoft账户、自动连接校园网(UESTC)

    作为一个需要用教研室台式机的同学,为了确保寒假回家,能够将科研进行到底,就在回家的前一天决定设置一下电脑定时开机和开机自动连接校园网。 1.电脑开机后按【Del】键,有些电脑按【F2】键,进入BIOS界面; 2.选择【Power Management Setup】选项; 3.Power Management Setup界面

    2024年02月05日
    浏览(45)
  • vmware校园网虚拟机无法连接网络解决方法

    可能导致虚拟机网络问题的几个可能: (1)首先确认vmware相关服务是否打开。详细方法右键此电脑--打开管理--服务和应用程序--服务--慢慢下拉到vmware相关服务右键启动服务。 (2)虚拟机防火墙关闭,win7为例:控制面板--查看(检查)防火墙状态--打开或关闭防火墙--关闭防

    2024年02月02日
    浏览(32)
  • 校园网绕过原理+云免软件使用+GIWIFI普通法(顶替法)理论通用所有校园网

    心事是很难隐藏的,把嘴巴捂住它就会从眼睛里冒出来。by 飞机 【小风车 吹啊吹~~】     我们今天要说的就是校园网绕过认证,也就是所谓的校园网破解       校园网绕过认证就是不通过校园WiFi WEB页面登录,他这个WEB登录页面就是认证页面,所谓绕过认证,就是不通过

    2024年02月03日
    浏览(40)
  • 使用eNSP搭建校园网

    哈喽,今天写一篇文章记录一下课上进行的实验 说实话,上早八这个脑子他是真的不带转的,家人们有没有什么好方法,能在早八的时候把脑子转起来😢 好了,讲一下实验背景。 学校有东西两个校区,东校区三个学院,用户共1000人,西校区一个学院,用户只有200人。 首先

    2024年02月07日
    浏览(43)
  • 手把手教你设置路由器、猫的正确连接方法及ip动态获取,实现校园网

    以海南大学的校园网为例,手把手教你设置无线路由器,正确连接猫,实现校园网! 工具/原料 至少一台笔记本电脑,猫,路由器,网线两根(其实一根也行) 方法/步骤 1、首先去找学校的网管(海大的话在“社团一条街”那里)要一个猫,开几个账号,并在自助机里往账号

    2024年02月06日
    浏览(77)
  • 使用教程之【SkyWant.[2304]】路由器操作系统,破解移动【netkeeper】校园网【小白篇】

    许多高校目前饱受netkeeper认证的痛苦,普通路由器无法使用,教你利用SkyWant的netkeeper认证软件来使你的SkyWant路由器顺利认证上网,全宿舍又可以合作共赢了! 正确连接网线: 路由器网口分两种,一种是获取网络的【wan】(只有一个),给电脑用的【lan】(至少两个),你可

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包