校园网自动拨号联网的方式
解决的问题:
由于校园网隔段时间就会自己掉线,导致无法远程连接服务器,这给远程使用的我带来了巨大的麻烦,为了解决这个问题,从网上收集了各种资料,最后选择使用selenium这个python库模拟登录校园网的操作。
实现方式如下(推荐在linux下操作):
1)pip安装selenium包:
pip install selenium
2)下载webdriver firefox内核(python可以操控的浏览器,跟我们平时用的浏览器不同,代码中使用Firefox的driver,如果想用其他浏览器,可以自行查找一下相关文章,之前有看到使用chrome浏览器的,将代码中Firefox()替换为了Chrome(),不过这种方式本人还没有尝试过),下载地址:
https://github.com/mozilla/geckodriver/releases
3)解压缩下载的文件到一个文件夹,如果是linux则复制到/usr/bin/geckodriver ,如果是windows则手动添加环境变量,这样python运行时可以找到这个driver。linux 复制该driver的代码:
sudo cp geckodriver /usr/bin/geckodriver
4)修改代码。代码的下载地址:
https://github.com/KuangenZhang/net_connect
修改代码中的校园网用户名,校园网密码,校园网登陆地址,校园网用户名输入控件ID,校园网密码输入控件ID,以及校园网连接控件ID。以上几个ID都可以通过查看网页源码得到。
username_str = "****" # 你的校园网登陆用户名
password_str = "****" # 你的校园网登陆密码can_connect = Truedef 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()
如果发现网页中。所要获取的标签没有id,上述方式将不再适用,而可以使用如下的方式,代码如下:
username_str = "***" # 你的校园网登陆用户名
password_str = "***" # 你的校园网登陆密码can_connect = Truedef login():try:driver = webdriver.Firefox()driver.get("***") # 你的校园网登陆地址time.sleep(3)username_input = driver.find_element_by_name("username")#username_input = driver.find_element_by_id("username") # 校园网登陆用户名的输入控件ID, 浏览器上右键查看网页源代码查询password_input = driver.find_element_by_name("password")#password_input = driver.find_element_by_id("password") # 校园网登陆密码的输入控件ID, 浏览器上右键查看网页源代码查询print('Searching connect')login_button = driver.find_element_by_id("button") # 校园网登陆连接的点击控件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()
使用driver.find_element_by_name()方式获取,或者是driver.find_element_by_class_name(),这些一个html文件中,一个标签必备的元素之一 ,用于指代该标签。更多通过selenium库获取网页标签信息的方式可参见下面的博客:
https://blog.csdn.net/qq_32897143/article/details/80383502
5)运行代码
python main_webdriver.py
接下来可以试试手动登出校园网,看看程序是否自动连接成功。
参考:https://zhuanlan.zhihu.com/p/74082157
校园网自动拨号联网的方式相关推荐
- 如何让电脑开机自动拨号联网
用ADSL拨号上网的朋友,是不是觉得每次都要去点击连接图标才能上网很麻烦.其实可以通过设置实现电脑开机自动拨号联网.本文分为以下几个部分:最简单方法.最常用方法.使用宽带路由器自动上网方法.windo ...
- 驱动程序开发:基于EC20 4G模块自动拨号联网的两种方式(GobiNet工具拨号和PPP工具拨号)
目录 一.EC20 4G模块简介 二.根据移远官方文档修改EC20 4G模组驱动 1.因为EC20 4G模组min-pice接口其实就是usb接口,因此需要修改Linux内核源码drivers/u ...
- WIN10 电脑设置自动拨号联网任务,实现开机、断网自动重连
1.打开"计算机管理" 使用组合键 win + X 唤出系统菜单,点击 计算机管理 . 2.打开"任务计划程序" 3.创建自动联网任务 ① 点击 创建基本任务 ...
- WIN10实现开机、笔记本合盖后重新打开(睡眠唤醒)自动拨号联网(其他其他机型也差不多)
1.打开"计算机管理" win+X 选择"计算机管理" 或者鼠标右键此电脑选择"管理" 2.在"计算机管理"选择&quo ...
- 开机自动拨号与DDNS(废弃该方式)
上一篇文章讲到如何拥有公网ip地址对外提供服务 文章推荐:家用移动光猫(型号:HS8545M5)利用公网ipv6对外提供公网服务.(100M的宽带真香!) 这里则考虑突然断电,或者意外断网. 电以及网 ...
- 1.1.1.1校园网_还担心断网?快试试清华校园网自动连接程序
作为一名热爱科ban研zhuan的博士生,当我放假回家的时候,最挂念的就是实验室电脑上的文件和程序.在校外无法通过mstsc使用IP直连,只能通过第三方远程连接软件诸如Teamviewer.向日葵等来 ...
- 利用Python实现校园网自动登录(部署在树莓派)
利用Python实现校园网自动登录(部署在树莓派) 项目场景: 在实验室的时候,每天的第一个苦恼就是面对不自动弹窗的校园网登录,且一个账号仅支持两个设备. 实验室使用了路由器,多个设备使用同一个账号上 ...
- Windows系统设置宽带连接开机自动拨号的方法
一开始有这个需求是实验室有一台服务器,我寒假回家可能需要操作(没办法,就是这么认真,放假也要科研),这样的话为了防止实验室断电或断网,我需要保证断网重拨和重启重拨.这个地方需要注意一点服务器断电自动重 ...
- 一个NB-IoT/4G模组的AT拨号联网流程
在各类物联网应用中,NB或者4G网络是常见的通信介质,其最大的优势是可以借助现有的移动基站,无需额外建立基站,所以广泛应用在三表(水表.电能表.天然气表)无线抄表中.通常情况下,对于这类小流量的数 ...
最新文章
- 第二届中国云计算与SaaS学术会议征文通知
- ps命令显示uid而不是用户名的解决方法
- securecrt如何保存操作日志
- Spring-boot快速实现Spring框架配置
- 什么是CSS+DIV及其优势所在?
- php文件流播放拖动,自定义实现可以播放暂停、进度拖拽、音量控制及全屏的H5播放器...
- hi3559AV100上交叉编译faiss(facebook research)
- 单元格自适应宽度_Excel – 合并单元格时,如何同时保留每个单元格的内容?...
- java计算机毕业设计疫情防控期间网上教学管理源程序+mysql+系统+lw文档+远程调试
- hdu1175连连看
- 数据显示:中国程序员是世界上最牛的程序员
- ISBN(国际标准书号)
- python利用you-get下载视频
- Find a Mother Vertex in a Graph
- 时间计算题100道_数学大作战!小学13000道计算题+20000道口算题立即领!
- VR产品为什么没有火起来
- 2021邵阳市区三中高考成绩查询,2021年邵阳市普通高考科目及各科分数
- 一次小米路由器3刷机的翻车记录
- Boolean value of Tensor with more than one value is ambiguous
- Linux Zram配置使用(特定平台个人使用,maybe不具普适性)