python+windows任务计划程序实现每日定时登录校园网 您所在的位置:网站首页 网页自动登录脚本怎么设置 python+windows任务计划程序实现每日定时登录校园网

python+windows任务计划程序实现每日定时登录校园网

2024-04-10 20:14| 来源: 网络整理| 查看: 265

过几天要回家了,不想带电脑,但是又怕急用。所以打算放在寝室里一直待机,可是学校的校园网很鸡肋,每隔差不多俩天断开一次,抑郁。于是有了下面这个脚本。

1、实现原理

先插入涉及模块

import os from selenium import webdriver as web import time 1)检测网络是否正常

因为我的是校园网,所以是借助os.system通过ping协议来检测的。(我试过了socket模块,不是很理想,专业知识不足,这里没法解释的很清楚)

def checkPC(url): # 如果没有网络返回值为1(代表有错误),否则返回0 if os.system("ping " + url): return False else: return True 2)通过python-selenium实现“物理”登录校园网

校园网登录界面很复杂,看了很久好不容易有一点思绪,结果被token难住了,扒皮呀!最后只能简单粗暴的实现登录,这里简称“物理登录”。(直接上代码)

# ip,用户名,密码,网络类型值@cmcc def loginNet(ip, username, password, net="中国移动"): # 创建浏览器对象 browser = web.ChromeOptions() # 无窗口模式 # browser.headless() # 本地谷歌浏览器驱动 driverPath = r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" # 打开浏览器 driver = web.Chrome(options=browser, executable_path=driverPath) time.sleep(10) # 窗口最大化 driver.maximize_window() time.sleep(10) # 以get的方式打开网页 driver.get(ip) # 等待加载 time.sleep(10) # 获取指定id控件,并向控件中赋值 driver.find_element_by_id("username").send_keys(username) driver.find_element_by_id("password").send_keys(password) driver.find_element_by_id("domain").send_keys(net) driver.find_element_by_id("login").click() # 休息1秒 time.sleep(1) # 关闭浏览器 re = driver.close() # 再休息一秒 time.sleep(1) # 检测是否连接成功 if re and checkPC("www.baidu.com"): return True return False

 这里会遇到浏览器驱动版本不对应的问题,看这个大佬的博客。https://blog.csdn.net/weixin_44612439/article/details/87983282

 (这是校园网登录界面,上面执行结果就是打开这个网址,然后把设定的信息输入进去,然后登录)

3)创建一个bat文件,通过任务计划程序每天1点钟执行一次(可以多弄几个,这样就能实现每小时执行)

下面是bat文件的代码

python Z:\auto.py

打开任务计划程序(windows+R,再输入compmgmt.msc)

(剩下的就很简单了,夜深了,不写了)

2、完整代码 import os from selenium import webdriver as web import time def checkPC(url): # 如果没有网络返回值为1(代表有错误),否则返回0 if os.system("ping " + url): return False else: return True # ip,用户名,密码,网络类型值@cmcc def loginNet(ip, username, password, net="中国移动"): # 创建浏览器对象 browser = web.ChromeOptions() # 无窗口模式 # browser.headless() # 本地谷歌浏览器驱动 driverPath = r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" # 打开浏览器 driver = web.Chrome(options=browser, executable_path=driverPath) time.sleep(10) # 窗口最大化 driver.maximize_window() time.sleep(10) # 以get的方式打开网页 driver.get(ip) # 等待加载 time.sleep(10) # 获取指定id控件,并向控件中赋值 driver.find_element_by_id("username").send_keys(username) driver.find_element_by_id("password").send_keys(password) driver.find_element_by_id("domain").send_keys(net) driver.find_element_by_id("login").click() # 休息1秒 time.sleep(1) # 关闭浏览器 re = driver.close() # 再休息一秒 time.sleep(1) # 检测是否连接成功 if re and checkPC("www.baidu.com"): return True return False if __name__ == "__main__": if not checkPC("www.baidu.com"): print("The network is not connected!") if loginNet("http://10.152.250.2", "username", "password"): print("The network is connected!") else: print("The network is connected!") 3、运行结果,不会录屏,只有图片,自己臆想  

(这种时长,是个老电脑人了)

 

 

 

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有