基于python实现开机自动连接校园网(广工商)

​ 因为每次开机之后无法直接使用网络,每次嫌麻烦都要打开网页输入账号密码或者打开天翼校园客户端,所以直接做了一个自动化程序来帮助我每次开机自动连接校园网

python环境准备:

​ 1.python==>3.7

​ 2.selenium ==>3.14.0 (需要下载对应的浏览器驱动,具体的可以去csdn里面搜一下)

​ 3.pytesseract ==>0.39 (对应一个tesseract-OCR识别的工具,在github上面开源的,支持一般的字母数字识别)

主要流程:

​ 开机后自动启动此脚本,使用selenium自动化工具做对应的js页面处理,所以我们只用关心日常登录的过程,实际上我们也是让程序模拟执行我们日常登陆的操作流程。

分析过程:

​ 我们通过细心的观察不难发现每次连接网络后都会打开aHR0cDovL2VuZXQuMTAwMDAuZ2QuY246MTAwMDEvcXMvaW5kZXhfZ3ouanNwP3dsYW5hY2lwPTE4My41Ni42LjQ1JndsYW51c2VyaXA9MTcyLjIwLjIyMy4xMg==(经过base64加密)这个网站,那么我们主要处理的就是这个网站。

代码实现:

import re
import time
from selenium import webdriver
import pytesseract
from PIL import Image
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
user = '' # 账号
passworld = '' # 密码
driver = webdriver.Chrome()
driver.maximize_window()
pytesseract.pytesseract.tesseract_cmd = r'E:\tesseract-OCR\tesseract.exe'  # 换成自己电脑上的路径    指定tesseract.exe的路径
tesseract_dir_config = r"--tessdata-dir 'E:\tesseract-OCR\tessdata'"    # 换成自己电脑上的路径    指定训练集的路径
stop = False
while not stop:driver.get('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')time.sleep(1)driver.save_screenshot('xyw.png')driver.find_element_by_xpath('//*[@id="username"]').send_keys(user)driver.find_element_by_xpath('//*[@id="password"]').send_keys(passworld)driver.find_element_by_xpath('//*[@id="code"]').send_keys()element = driver.find_element_by_id('image_code')# 计算出上下左右的位置left = element.location['x']top = element.location['y']right = element.location['x'] + element.size['width']bottom = element.location['y'] + element.size['height']im = Image.open('./xyw.png')im = im.crop((left, top, right, bottom))im.save('./code1.png')image = Image.open('./code1.png')img_str = pytesseract.image_to_string(image=image, lang='eng', config=tesseract_dir_config)img_str = re.sub("\s", '', img_str)print(img_str)if len(img_str) == 4:driver.find_element_by_xpath('//*[@id="code"]').send_keys(img_str)else:driver.find_element_by_xpath('//*[@id="code"]').send_keys(str(input('请输入验证码:')))driver.find_element_by_xpath('//*[@id="login"]/form/div[5]/div/button').click()try:WebDriverWait(driver, 2).until(EC.visibility_of_element_located((By.ID, 'success'))) # 判断元素是否可见stop = Truedriver.quit()except:pass'''代码解释:首先我们导入了需要用到的库 设置一下配置   主要的代码逻辑还是得看  while STOP:后面的首先我们访问学校的网址,把selenium 的窗口调到最大,等待一秒钟等网址加载(根据电脑的配置可以自行调整速度),保存该页面的图片(等下验证码处理的时候会用到),选择到对应的账号密码的输入框把账号密码输入进去(这里是固定的所以基本不用管),最主要的还是做验证码的识别和处理。然后我们再选择到验证码的页面元素,通过网页来看不难看出有一个固定的id是image_code,选择到这个id然后计算出来图片的所在的位置,具体的可以看我另一篇博客:通过selenium截图,然后经过ocr识别出验证码进行登录操作,最后再关闭selenium但是这里有一点需要注意,网上开源的ocr识别没有那么准确,再加上开机之后是断网的环境无法使用百度等接口实现图片识别,所以此处加了一个逻辑处理,若没有识别正确的话需要人工输入或者重试,目前这里是想到比较好的办法了,若是有更好的可以加我的微信详谈:G07527386  (请注明来意)'''

将脚本添加到开机启动

​ 创建一个activate.bat文件:再把此行代码加入(将路径替换一下成自己的python路径就可以了)

cmd /k "timeout /t 5&&E:\py3.7.2\python.exe code.py"

​ 再按Win+R键打开输入shell:startup将之前创建的activate.bat文件创建一个快捷方式放入里面就可以了

​ 到此处本次的脚本就制作完成了

基于python实现开机自动连接校园网(广工商)相关推荐

  1. 南信大电脑开机自动连接校园网

    2022-11-20更新:南信大更新了连接时的url,更改部分如下: val url ="http://10.255.255.46/api/v1/login"val ipPath ...

  2. Python脚本-自动连接校园网

    自动连接校园网 使用语言:Python python爬虫 浏览器:谷歌浏览器 import requests#登录地址 URL="http://10.2.255.26:801/eportal ...

  3. Windows开机自动连接宽带(校园网拨号等)

    Windows开机自动拨号连接宽带 前言 一.原理及说明 二.使用步骤 1.下载sh文件 2.运行sh文件 3.如果要删除这个任务 4.如果要设置其他账号 总结 前言 学校的宽带网络可能都有每次开机都 ...

  4. python+selenium实现自动化连接校园网

    python+selenium实现自动化连接校园网(资源下载链接在总结) 校园网的自动连接 在学校里面,我经常会用到校园WiFi.我个人使用的是办移动套餐送的wifi套餐,因此,我连接的WiFi是NJ ...

  5. 【Ubuntu】开启ssh服务/配置ftp内网穿透/自动连接校园网

    前言 想让工作电脑开启ssh服务,这样就可以在校外进行远程访问办公,电脑的系统为Ubuntu20.04 开启ssh服务 首先查看当前Ubuntu安装的SSH服务: dpkg -l | grep ssh ...

  6. Linux 服务器自动连接校园网,selenium + geckodriver + firefox浏览器

    文章目录 设备信息 一. 下载安装 firefox 浏览器相关驱动 1. firefox 浏览器版本查看 2. 下载对应版本的 selenium 和 geckodriver 驱动 二. 自动连接脚本 ...

  7. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

  8. PHP宽带自动拨号,window_Win10怎么设置宽带自动连接 win10开机自动连接宽带设置方法详解,对于没有使用路由器中转,每 - phpStudy...

    Win10怎么设置宽带自动连接 win10开机自动连接宽带设置方法详解 对于没有使用路由器中转,每次开机都需要进行宽带连接拨号上网的用户来说,每次打开电脑都需要打开宽带连接进行拨号才能正常上网是不是很 ...

  9. Arch设置开机自动连接wifi网络:

    Arch设置开机自动连接wifi网络 (i3wm) netctl是arch的源生项目,集成于base包.netctl基于命令行,你可以安装其他的图形网络管理工具. 从 /etc/netctl/exam ...

  10. 开机自动登录校园网(西安电子科技大学)

    介绍 每次开机需要手动打开网页登录校园网,有些烦.本文给出开机自动登录校园网的方法,首先给出西安电子科技大学自动登录校园网的直接可用的脚本,然后给出通用所有大学校园网或单位内网的脚本改写方法. 环境要 ...

最新文章

  1. 间接寻址级别不同_详解西门子间接寻址之地址寄存器间接寻址
  2. 组合数(Combinatorial_Number)
  3. 电脑删除快捷键_可能是知乎最有用的 Windows 快捷键学习指南。
  4. 【C语言】常见面笔试题(10道)
  5. 飞行计算机配置,微软飞行模拟器配置要求一览 最低/最高PC配置详情
  6. 侠盗病毒”志不在“侠”,360安全大脑强力查杀!
  7. linux安装pyodbc模块,Linux下安装pyodbc报错 error: command 'gcc' failed with exit status 1
  8. apollo 自动驾驶中的GNSS/融合定位技术
  9. 富龙热电:望眼欲穿矿难拿
  10. Linux alarm闹钟函数
  11. Windows 显示/隐藏文件扩展名
  12. 机器翻译评测方法——BLEU
  13. 如何有效管理自己电脑里的文件
  14. windows10管理员获得完全权限
  15. 关于Wav音频压缩MP3
  16. Cesium计算当前比例尺
  17. Zabbix 和 Prometheus 到底怎么选?千万别用错了!
  18. npm run dev 和 npm run serve
  19. zabbix server is not running,the information displayed may not be current
  20. EOS 超级矿工——首款可以免费挖出 EOS 的区块链游戏

热门文章

  1. 天涯“大鹏金翅明王”语录
  2. excel函数自变量linux,excle 求自变量 | 如何用EXCEL已知自变量和函数值求函数式
  3. 网址 URL 最后的斜杠 / 是作甚的?
  4. conda:未找到命令
  5. 超实用的 Python 技巧,异步操作数据库!
  6. 智能生活 App SDK 开发入门教程【内附代码段 】
  7. 室内设计手绘表现手法基础教程
  8. 简单理解串行计算、并行计算、分布式计算、网格计算与云计算
  9. DLL load failed: %1 不是有效的 Win32 应用程序的解决办法
  10. C语言中的指针加减偏移量