栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python--编写脚本实现自动登录校园网账户+开机自启动程序(以河海大学为例)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python--编写脚本实现自动登录校园网账户+开机自启动程序(以河海大学为例)

由于寒假将近,放假回家仍然要搞起学习呀~
一般我会通过远程操控实现操作办公室的电脑进行work,但是学校里的校园网可能由于长时间未操作等原因导致断网,这就会导致远程软件无法有效连接,为了避免这种情况,最好就是有个脚本,能够在你断网的时候实现每天自启动,登录校园网。
以下是所需的准备:

1、安装好python,以及selenium库2、安装对应谷歌版本的chromedriver.exe3、编写脚本4、加入开机自启动程序

第一步不必多说,懂得都懂,不会的百度了。。。

2、安装对应谷歌版本的chromedriver.exe

从第二步开始,首先,博主使用的是谷歌浏览器,所以仅以谷歌浏览器为例。如何查看自己的谷歌浏览器版本,可以通过在搜索栏输入:chrome://version/,如下所示:

如图,博主版本所示为:97.0.4692.71,接着,进入下列网站:
下载chromedriver

复制刚刚的版本序列号,按住ctrl+f键,进行搜索:


点击进入,下载对应的版本即可,我这里下载的是win32.zip

下载之后,解压到一个指定的文件夹,与你编写脚本的文件路径一致!!!
如博主这里,编写脚本的路径是D:/,那么,下载好的chromedriver.exe也放到同样的位置。


到这里,第二步就准备完成啦!

3、编写python脚本

主要通过调用selenium库实现自动登陆的功能,结合登录页面的网络源码,查看相关登录名称(id)
代码如下,创建一个脚本名称为:login.py,打开后:

导入库:

from selenium import webdriver as web
import time
import selenium

定义登录网址的浏览器及页面设置,修改属于你自己的chromedriver.exe的路径:

chromedriver = r"D:chromedriver.exe" ##这个位置是你自己的下载放置的chromedriver.exe的路径
options = web.ChromeOptions()
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
# 创建浏览器
driver = web.Chrome(chromedriver, chrome_options=options)
# 设置窗口大小
driver.set_window_size(1920, 1080)

准备账户、密码、登录网址

username = 'xxxxxx'
password = 'xxxxxx'
url = 'xxxxxx'

登录代码,输入信息:这里有个方法可以找到自己学校登录网址账户源码名称,打开登录网址,按住F12键,看到Elements,点击图中箭头,以点击账号为例,就可以看见账户的id了,然后对应的输入到代码中即可:

driver.get(url)
try:
    driver.find_element_by_id("toLogOut")
    print("开始连接学校网络……")
except selenium.common.exceptions.NoSuchElementException:
    # 下面的id信息可以在源码中找到,账户、密码
    username_input = driver.find_element_by_id("username")
    password_input = driver.find_element_by_id("pwd")
    ## 这个地方,有些学校可能不一样,有的就是loginlink,需要仔细查看
    login_button = driver.find_element_by_id("loginlink_div")   
    ## 选择网络服务选项
    select_service = driver.find_element_by_id("selectDisname")
    #  _service_0:校园外网服务(out-campus NET)
    #  _service_1:校园内网服务(in-campus NET)
    #  _service_2:中国移动(CMCC NET)
    services = driver.find_element_by_id("_service_0")
    print("网页加载完毕")
	# 
    username_input.send_keys(username)
    # 密码输入框需单击激活后才可输入↓,id名称上述方法同理
    driver.find_element_by_id("pwd_tip").click()
    # 传入相关参数,密码、账户、
    password_input.send_keys(password)
    select_service.click()
    services.click()
    login_button.click()
    print("连接成功")
    # driver.close()
else:
    f = input("已登录,要退出吗?(Y/N)n")
    if f.lower() == "y":
        driver.find_element_by_id("toLogOut").click()
        driver.find_element_by_id("sure").click()
        print("已退出登录")
        # driver.close()
    else:
        print("程序结束")
        # driver.close()

完整代码如下:

from selenium import webdriver as web
import time
import selenium
chromedriver = r"D:chromedriver.exe" ##这个位置是你自己的下载放置的chromedriver.exe的路径
options = web.ChromeOptions()
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
# 创建浏览器
driver = web.Chrome(chromedriver, chrome_options=options)
# 设置窗口大小
driver.set_window_size(1920, 1080)
username = 'xxxxxx'
password = 'xxxxxx'
url = 'xxxxxx'
driver.get(url)
try:
    driver.find_element_by_id("toLogOut")
    print("开始连接学校网络……")
except selenium.common.exceptions.NoSuchElementException:
    # 下面的id信息可以在源码中找到,账户、密码
    username_input = driver.find_element_by_id("username")
    password_input = driver.find_element_by_id("pwd")
    ## 这个地方,有些学校可能不一样,有的就是loginlink,需要仔细查看
    login_button = driver.find_element_by_id("loginlink_div")   
    ## 选择网络服务选项
    select_service = driver.find_element_by_id("selectDisname")
    #  _service_0:校园外网服务(out-campus NET)
    #  _service_1:校园内网服务(in-campus NET)
    #  _service_2:中国移动(CMCC NET)
    services = driver.find_element_by_id("_service_0")
    print("网页加载完毕")
	# 
    username_input.send_keys(username)
    # 密码输入框需单击激活后才可输入↓,id名称上述方法同理
    driver.find_element_by_id("pwd_tip").click()
    # 传入相关参数,密码、账户、
    password_input.send_keys(password)
    select_service.click()
    services.click()
    login_button.click()
    print("连接成功")
    # driver.close()
else:
    f = input("已登录,要退出吗?(Y/N)n")
    if f.lower() == "y":
        driver.find_element_by_id("toLogOut").click()
        driver.find_element_by_id("sure").click()
        print("已退出登录")
        # driver.close()
    else:
        print("程序结束")
        # driver.close()

这里,运行程序一般就能实现自动登陆的功能啦!

4、加入开机自启动程序

首先新建一个txt文本文档,改名为autologin:

然后打开后输入代码,这里的login.py就是你的python脚本名称,按照自己的脚本名称修改,输入完成后保存退出,重命名,把后面的.txt改为.bat:

start python login.py
exit


上述操作完成后,按住win+R键,在搜索栏输入:shell:startup,然后将刚刚的那个login.bat文件复制到该路径下,重启电脑即可发现以及在自启动程序中了。

==============================================================================
第二种方式,按住win+R,输入compmgmt.msc,确定,进入计算机管理界面,创建一个基本任务。




将刚刚写好的程序放入:

然后这样就搞定了!

			    			一个努力学习python的海洋
		                    水平有限,欢迎指正!!!
	                        欢迎评论、收藏、点赞、转发、关注。
	                        关注我不后悔,记录学习进步的过程~~
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/714236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号