解决的问题:

由于校园网隔段时间就会自己掉线,导致无法远程连接服务器,这给远程使用的我带来了巨大的麻烦,为了解决这个问题,从网上收集了各种资料,最后选择使用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

校园网自动拨号联网的方式相关推荐

  1. 如何让电脑开机自动拨号联网

    用ADSL拨号上网的朋友,是不是觉得每次都要去点击连接图标才能上网很麻烦.其实可以通过设置实现电脑开机自动拨号联网.本文分为以下几个部分:最简单方法.最常用方法.使用宽带路由器自动上网方法.windo ...

  2. 驱动程序开发:基于EC20 4G模块自动拨号联网的两种方式(GobiNet工具拨号和PPP工具拨号)

    目录 一.EC20 4G模块简介 二.根据移远官方文档修改EC20 4G模组驱动   1.因为EC20 4G模组min-pice接口其实就是usb接口,因此需要修改Linux内核源码drivers/u ...

  3. WIN10 电脑设置自动拨号联网任务,实现开机、断网自动重连

    1.打开"计算机管理" 使用组合键 win + X 唤出系统菜单,点击 计算机管理 . 2.打开"任务计划程序" 3.创建自动联网任务 ① 点击 创建基本任务 ...

  4. WIN10实现开机、笔记本合盖后重新打开(睡眠唤醒)自动拨号联网(其他其他机型也差不多)

    1.打开"计算机管理" win+X 选择"计算机管理" 或者鼠标右键此电脑选择"管理" 2.在"计算机管理"选择&quo ...

  5. 开机自动拨号与DDNS(废弃该方式)

    上一篇文章讲到如何拥有公网ip地址对外提供服务 文章推荐:家用移动光猫(型号:HS8545M5)利用公网ipv6对外提供公网服务.(100M的宽带真香!) 这里则考虑突然断电,或者意外断网. 电以及网 ...

  6. 1.1.1.1校园网_还担心断网?快试试清华校园网自动连接程序

    作为一名热爱科ban研zhuan的博士生,当我放假回家的时候,最挂念的就是实验室电脑上的文件和程序.在校外无法通过mstsc使用IP直连,只能通过第三方远程连接软件诸如Teamviewer.向日葵等来 ...

  7. 利用Python实现校园网自动登录(部署在树莓派)

    利用Python实现校园网自动登录(部署在树莓派) 项目场景: 在实验室的时候,每天的第一个苦恼就是面对不自动弹窗的校园网登录,且一个账号仅支持两个设备. 实验室使用了路由器,多个设备使用同一个账号上 ...

  8. Windows系统设置宽带连接开机自动拨号的方法

    一开始有这个需求是实验室有一台服务器,我寒假回家可能需要操作(没办法,就是这么认真,放假也要科研),这样的话为了防止实验室断电或断网,我需要保证断网重拨和重启重拨.这个地方需要注意一点服务器断电自动重 ...

  9. 一个NB-IoT/4G模组的AT拨号联网流程

      在各类物联网应用中,NB或者4G网络是常见的通信介质,其最大的优势是可以借助现有的移动基站,无需额外建立基站,所以广泛应用在三表(水表.电能表.天然气表)无线抄表中.通常情况下,对于这类小流量的数 ...

最新文章

  1. 第二届中国云计算与SaaS学术会议征文通知
  2. ps命令显示uid而不是用户名的解决方法
  3. securecrt如何保存操作日志
  4. Spring-boot快速实现Spring框架配置
  5. 什么是CSS+DIV及其优势所在?
  6. php文件流播放拖动,自定义实现可以播放暂停、进度拖拽、音量控制及全屏的H5播放器...
  7. hi3559AV100上交叉编译faiss(facebook research)
  8. 单元格自适应宽度_Excel – 合并单元格时,如何同时保留每个单元格的内容?...
  9. java计算机毕业设计疫情防控期间网上教学管理源程序+mysql+系统+lw文档+远程调试
  10. hdu1175连连看
  11. 数据显示:中国程序员是世界上最牛的程序员
  12. ISBN(国际标准书号)
  13. python利用you-get下载视频
  14. Find a Mother Vertex in a Graph
  15. 时间计算题100道_数学大作战!小学13000道计算题+20000道口算题立即领!
  16. VR产品为什么没有火起来
  17. 2021邵阳市区三中高考成绩查询,2021年邵阳市普通高考科目及各科分数
  18. 一次小米路由器3刷机的翻车记录
  19. Boolean value of Tensor with more than one value is ambiguous
  20. Linux Zram配置使用(特定平台个人使用,maybe不具普适性)

热门文章

  1. linux系统怎样安装驱动程序,linux下网卡驱动安装全过程
  2. 流媒体下载软件Streambox VCR
  3. 【操作系统之考前垂死挣扎】01操作系统引论
  4. 2013 国家自然科学基金中标项目软件工程
  5. 罗丹明标记鬼笔环肽|TRITC Phalloidin,915013-10-4
  6. Cesium中笛卡尔坐标系到底是什么鬼
  7. 数仓 元数据管理 Atlas 的使用
  8. javafx2舞台和场景_Oracle推动JavaFX 2,Stephen Chin和Jim Weaver入伍
  9. precision and recall
  10. Axure 教程:中国地图和世界地图