当前位置: 首页 > news >正文

python+selenium实现自动联网认证,并实现断网重连

python+selenium实现自动联网认证,并实现断网重连

@echo off
python “E:\autoD\auto_login.py”

要使自动登录脚本在系统重启后自动运行,你可以使用Windows的任务计划程序来设置。以下是详细的步骤:

1. 保存脚本

首先,将你的Python脚本保存为一个文件,例如 auto_login.py

2. 创建批处理文件

为了方便任务计划程序调用,我们可以创建一个批处理文件(.bat)来运行Python脚本。假设你已经安装了Python,并且Python的路径已经添加到系统的环境变量中。

  1. 打开记事本或任何文本编辑器。
  2. 输入以下内容:
    @echo off
    python "C:\path\to\your\script\auto_login.py"
    
  3. 将上述内容保存为 run_auto_login.bat,确保路径指向你的Python脚本的实际位置。

3. 设置任务计划程序

  1. 打开任务计划程序

    • Win + R 打开运行对话框,输入 taskschd.msc 并按回车,打开任务计划程序。
  2. 创建基本任务

    • 在右侧操作栏中点击“创建基本任务…”。
    • 输入任务名称,例如“自动登录认证”,然后点击“下一步”。
    • 选择触发器为“当计算机启动时”,点击“下一步”。
    • 选择操作为“启动程序”,点击“下一步”。
  3. 配置启动程序

    • 浏览并选择刚刚创建的 run_auto_login.bat 文件。
    • 点击“下一步”,然后点击“完成”。
  4. 高级设置(可选):

    • 如果需要进一步配置任务,可以在任务列表中找到你创建的任务,右键点击它,选择“属性”。
    • 在“常规”选项卡中,可以设置任务的描述、安全选项等。
    • 在“触发器”选项卡中,可以设置更具体的触发条件。
    • 在“操作”选项卡中,可以查看和修改启动的程序。
    • 在“条件”和“设置”选项卡中,可以设置更多的任务执行条件和行为。

4. 测试任务

  1. 手动测试

    • 你可以在任务计划程序中手动运行这个任务,以确保它能够正确执行。
    • 右键点击任务,选择“运行”。
  2. 重启测试

    • 重启计算机,检查任务是否在启动时自动运行。

5. 验证脚本

  • 确保Python脚本和WebDriver路径正确。
  • 确保浏览器驱动(如ChromeDriver)已下载并放置在正确的路径。
  • 确保Python和WebDriver版本兼容。

6. 其他注意事项

  • 权限问题:确保任务计划程序有足够的权限运行脚本。
  • 防火墙和杀毒软件:确保防火墙和杀毒软件不会阻止脚本的运行。
  • 日志记录:如果需要调试,可以在Python脚本中添加日志记录,以便追踪脚本的执行情况。

通过以上步骤,你应该能够成功设置一个在系统重启后自动运行的自动登录脚本。如果有任何问题,请随时告诉我。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

设置WebDriver路径

webdriver_path = r’C:\Program Files\Google\Chrome\chromedriver-win64\chromedriver.exe’ # #请下载这个!!!!!替换为你的WebDriver实际路径
service = Service(webdriver_path)

创建一个新的浏览器实例

driver = webdriver.Chrome(service=service)

try:
# 打开认证页面
driver.get(“http://172.1sType=1”)

# 等待页面加载
wait = WebDriverWait(driver, 10)# 填写用户名
username_field = wait.until(EC.presence_of_element_located((By.ID, "username")))
username_field.send_keys('dfdfg')# 填写密码
password_field = wait.until(EC.presence_of_element_located((By.ID, "password")))
password_field.send_keys('Z')# 选择“已阅读并同意用户须知”复选框
agree_checkbox = wait.until(EC.element_to_be_clickable((By.XPATH, "//img[@id='agreeCheck']")))
agree_checkbox.click()# 提交表单
submit_button = wait.until(EC.element_to_be_clickable((By.ID, "loginBtn")))
submit_button.click()# 如果需要保持页面打开一段时间,可以增加等待时间
time.sleep(5)  # 可以根据需要调整等待时间

finally:
# 关闭浏览器
driver.quit()

###查看网页源代码

  已阅读并同意用户须知 忘记密码 注册

根据上面修改下面的参数

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

设置WebDriver路径

webdriver_path = r’E:\Program Files\Tencent\QQBrowser\QQBrowser.exe’ # 请替换为你的WebDriver实际路径
service = Service(webdriver_path)

创建一个新的浏览器实例

driver = webdriver.Chrome(service=service)

try:
# 打开认证页面
driver.get(“http://174ype=1”)

# 等待页面加载
wait = WebDriverWait(driver, 10)# 填写用户名
username_field = wait.until(EC.presence_of_element_located((By.NAME, "username")))  # 替换为实际的用户名输入框name属性
username_field.send_keys('44g')# 填写密码
password_field = wait.until(EC.presence_of_element_located((By.NAME, "password")))  # 替换为实际的密码输入框name属性
password_field.send_keys('45')# 选择“已阅读并同意用户须知”复选框
agree_checkbox = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@type='checkbox']")))  # 根据实际情况调整XPath
agree_checkbox.click()# 提交表单
submit_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@type='submit']")))  # 根据实际情况调整XPath
submit_button.click()# 如果需要保持页面打开一段时间,可以增加等待时间
time.sleep(5)  # 可以根据需要调整等待时间

finally:
# 关闭浏览器
driver.quit()

要实现一个批处理文件(.bat),该文件能够自动检查网络状态并在网络出现问题时重新运行 auto_login.py,你可以使用以下步骤来创建这个批处理文件。这个批处理文件将定期 ping 百度,并在检测到网络问题时重新运行 auto_login.py。同时,它会将日志记录到一个文本文件中。

批处理文件示例

  1. 创建一个新的批处理文件
    • 打开记事本或任何文本编辑器。
    • 将以下内容复制并粘贴到编辑器中。
@echo off
setlocal:: 设置日志文件路径
set log_file=E:\autoD\network_log.txt:: 初始登录
echo [%date% %time%]: Initial login >> %log_file%
python "E:\autoD\auto_login.py" >> %log_file% 2>&1:: 设置检查间隔时间(秒)
set nexttime=60:loop
:: Ping 百度四次
for /f "tokens=4" %%i in ('ping -n 4 www.baidu.com ^| find "Reply from"') do set icmp_cnt=%%i:: 获取成功的 ICMP 包数量
set /a success_count=0
for /f "tokens=1,2 delims== " %%i in ('ping -n 4 www.baidu.com ^| find "Reply from"') do set /a success_count+=1:: 记录当前时间和 ping 结果
echo [%date% %time%]: ping receives: %success_count% / 4 >> %log_file%:: 如果 ping 失败(ICMP 包少于 4 个),重新登录
if %success_count% LSS 4 (echo [%date% %time%]: Network issue detected, re-login >> %log_file%python "E:\autoD\auto_login.py" >> %log_file% 2>&1
):: 等待指定的时间间隔
timeout /t %nexttime% >nul
goto loop
  1. 保存文件
    • 将文件保存为 network_checker.bat,确保扩展名为 .bat

解释

  • 日志文件network_log.txt 用于记录每次 ping 的结果和重新登录的时间。
  • 初始登录:脚本启动时首先执行一次 auto_login.py,并将输出重定向到日志文件。
  • Ping 检查:每隔 60 秒 ping 百度四次,并统计成功的 ICMP 包数量。
  • 网络问题检测:如果成功的 ICMP 包数量少于 4 个,则认为网络有问题,并重新运行 auto_login.py
  • 日志记录:每次 ping 的结果和重新登录的操作都会记录到 network_log.txt 文件中。
  • 循环:使用 :loop 标签和 goto loop 实现无限循环。

使用方法

  1. 将上述批处理文件保存为 network_checker.bat,并将其放置在与 auto_login.py 同一级目录下。
  2. 在命令提示符或 PowerShell 中运行该批处理文件:
    E:\autoD\network_checker.bat
    

注意事项

  • 确保 auto_login.py 脚本在同一目录下,并且可以正常运行。
  • 如果你希望脚本在后台运行,可以使用 nohup 或者将脚本打包成一个 Windows 服务。
  • 如果需要更复杂的日志管理(如日志轮转),可以考虑使用专门的日志管理工具。

通过这种方式,你可以实现在 Windows 上定期检查网络状态并在网络出现问题时自动重新登录的功能。


http://www.mrgr.cn/news/31848.html

相关文章:

  • 读取ply文件中的点云属性
  • vue3 TagInput 实现
  • 如何把python(.py或.ipynb)文件打包成可运行的.exe文件?
  • 毕业季,论文的开题报告对大学生来说意味着什么?
  • ESP32调用本地部署的ChatTTS
  • C++第1课——输出、变量和输入(含视频讲解)
  • 我与Linux的爱恋:命令行参数|环境变量
  • 2024CSP-J初赛
  • string类(C++)
  • LeetCode 滑动窗口 最少交换次数来组合所有的 1 II
  • 湖北师范大学-Java入门 - 分支结构
  • 基于单片机汽车驾驶防瞌睡防疲劳报警器自动熄火设计
  • 浅谈Python之协程
  • 以STM32CubeMX创建DSP库工程方法二
  • 与姜妍同款冰箱,容声516WILL养鲜冰箱领“鲜”上市
  • Tomcat 乱码问题彻底解决
  • Go语言笔记
  • 计算机网络:物理层 --- 基本概念、编码与调制
  • mac新手入门(快捷键)
  • 电脑是否有问题?检测软件别再乱下载了,只要用这一款工具箱,就可以满足你的需求!