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

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

由于寒假将近,放假回家仍然要搞起学习呀~

一般我会通过远程操控实现操作办公室的电脑进行work,但是学校里的校园网可能由于长时间未操作等原因导致断网,这就会导致远程软件无法有效连接,为了避免这种情况,最好就是有个脚本,能够在你断网的时候实现每天自启动,登录校园网。


以下是所需的准备:


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


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


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



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


56e28aa280054149b0ed7ea2a373a330.png


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

下载chromedriver

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


348dabcf53514c308a9b827fd3f9a819.png

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


9e04cf219aaf4444a6639c18a20a0db7.png


下载之后,解压到一个指定的文件夹,与你编写脚本的文件路径一致!!!

如博主这里,编写脚本的路径是D:/,那么,下载好的chromedriver.exe也放到同样的位置。


cb2d83a83bb84960865bdce631efb7d1.png

92244b8703504be49eac14a852d68963.png


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


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了,然后对应的输入到代码中即可:


47fe68aa407f41ce8aaaa2677aca8ff2.png


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


87beb56965b74e1a987535789ff4f9ca.png


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


start python login.py
exit


bf5c1ae5d631438688349a5eb4daea2c.png


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


======================================================

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


b7703d6ab8d446b9a737b2b5fc2e5f24.pngf2c64db3b4284891bf36b3404265e31d.png5696544cf77349c99770c1c740d614b4.pngf0fd0ffa01754bb699f64ba1bf5fcdc7.png

将刚刚写好的程序放入:


127214c644be46af9dadb4f94e5feb9b.pngf1a30f7715504888a0dfc817fd7a452c.png


                        一个努力学习python的海洋
                        水平有限,欢迎指正!!!
                          欢迎评论、收藏、点赞、转发、关注。
                          关注我不后悔,记录学习进步的过程~~


相关文章
|
27天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
27 1
|
1月前
|
存储 算法 数据处理
使用Python编写高效的数据处理程序
在当今信息爆炸的时代,数据处理变得越来越重要。本文将介绍如何使用Python语言编写高效的数据处理程序,包括利用Python内置的数据结构和函数、优化算法和并行处理等技术,帮助开发者更好地处理和分析大规模数据。
|
29天前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
77 2
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
1天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
6天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
7天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
16 0
|
16天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
23天前
|
存储 监控 异构计算
【Python】GPU内存监控脚本
【Python】GPU内存监控脚本
|
23天前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
23天前
|
分布式计算 算法 搜索推荐
优化 Python 程序的五大技巧
本文介绍了优化 Python 程序的五大技巧,涵盖了代码结构优化、算法选择、内置函数利用、库的使用以及并行处理等方面。通过对这些技巧的实践,可以提升 Python 程序的性能和效率,从而更好地满足各类应用的需求。

热门文章

最新文章