Python 自动化脚本:基于 Selenium 和 Openpyxl 的考后核验系统
Python 自动化脚本:基于 Selenium 和 Openpyxl 的考后核验系统
该脚本利用 Python 的 Selenium 和 Openpyxl 库,实现考后核验系统的自动化,自动读取 Excel 表格数据,并根据时间信息创建文件夹,在网页中查找考生信息,提高工作效率。
代码实现
import os
import time
import psutil
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.common.by import By
import openpyxl
# 检查是否已经存在浏览器实例,如果存在则不再创建
for proc in psutil.process_iter():
try:
if 'chrome' in proc.name() and '--remote-debugging-port=9224' in proc.cmdline():
options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9224')
break
except:
pass
else:
# 创建浏览器实例
os.system(r'start chrome --remote-debugging-port=9224 --user-data-dir="D:\评阅用"')
options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9224')
# 在已有的浏览器实例中查找标签页
driver = webdriver.Chrome(options=options)
tabs = driver.window_handles
for tab in tabs:
driver.switch_to.window(tab)
if driver.title == '考后核验':
print('登陆成功')
break
# 打开 Excel 表格
wb = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\考后核验.xlsx')
sheet = wb.active
# 创建照片文件夹
if not os.path.exists(r'C:\Users\Administrator\Desktop\照片'):
os.mkdir(r'C:\Users\Administrator\Desktop\照片')
# 遍历时间单元K列
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=11, max_col=11):
for cell in row:
# 获取时间单元内的数据
data = cell.value
if data:
# 创建子文件夹
folder_name = time.strftime('%Y-%m-%d %H-%M-%S', time.strptime(data, '%Y-%m-%d %H:%M:%S'))
folder_path = os.path.join(r'C:\Users\Administrator\Desktop\照片', folder_name)
if not os.path.exists(folder_path):
os.mkdir(folder_path)
# 遍历表格内'A'列数据
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=1):
for cell in row:
# 获取学号
student_id = cell.value
if student_id:
# 在网页内查找考生信息
search_input = driver.find_element(By.XPATH, '//input[@placeholder="姓名/考生号"]')
search_input.clear()
search_input.send_keys(student_id)
time.sleep(1) # 等待页面加载完成
# 查找并点击“查询”按钮
query_button = driver.find_element(By.XPATH, '//span[@class="placeholder"]')
query_button.click()
# 处理查询结果(根据实际情况进行修改)
# ...
功能说明
- 自动打开浏览器:脚本会自动打开 Chrome 浏览器,并连接到指定网页。
- 读取 Excel 数据:脚本会读取指定的 Excel 表格文件,并提取表格数据。
- 创建文件夹:脚本会根据 Excel 表格中的时间信息,自动创建对应的文件夹。
- 查询考生信息:脚本会将 Excel 表格中的学号信息输入到网页的搜索框中,并进行查询。
使用说明
- 将代码保存为 .py 文件。
- 安装必要的库:Selenium、Openpyxl、psutil。
- 修改代码中的 Excel 文件路径、文件夹路径和网页地址。
- 运行脚本。
注意
- 脚本需要在电脑上安装 Chrome 浏览器。
- 需要将 Chrome 浏览器设置为允许远程调试模式。
- 确保 Excel 文件中包含时间信息,并且时间格式为 'YYYY-MM-DD HH:MM:SS'。
- 请根据实际情况修改代码中的 XPath 路径。
- 脚本仅供参考,实际使用时可能需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/fIKC 著作权归作者所有。请勿转载和采集!