)
一、背景需求8月5日没有分班前待处理问题幼儿是0条。现在分班后待处理幼儿就有125条晕每年都是这种补充工作明明系统可以表单里默认填充“否”非要让老师们人工批量*125次。打开幼儿表单有两种类型本地生源310都是选否不用补充户籍外省生源还要补充户籍二、思路1.共有选择1、就读默认日托2、民族询问有没有少数民族先手动做掉这些孩子。其他孩子默认汉族后来决定默认汉族后续再问班主任把个别少数民族孩子修改3、健康状况默认良好4、户口性质默认非农、户口类型城市5、军烈属、优抚、部队、随迁、孤儿、残疾全部点击否2.特殊选择1.筛选310的孩子先把以上内容做掉。2。非310孩子先默认填写以上信息然后暂听人工根据身份证的前六位豆包筛选出省市区但是要手动选三、资料收集1、获取少数民族小班组长呼吁了一下。组员们开始给我发“无”因为还不齐我考虑先把所有孩子都默认“汉族”然后等收集到个别几个少数名族的姓名后再一个个修改。。2、外省幼儿户口组长呼吁后组员们纷纷发我电子或图片的“点名册”可以看到每位班主任手打的信息都不同有的只写了“省”有的写了“省市”但是园园通上必须落实到“省、市、区”否则就保存不了。因此这些数据都需要人工推定。小结基于现状我决定先把上海户口孩子批量做掉再集中精力研究“非上海户籍”3.上海户口孩子的批量填写。用之前分班的代码修改一下坐标位置。【办公类110-03】20260805园园通小班分班pythonhttps://mp.csdn.net/mp_blog/creation/editor/163511702计算上海身份证号码的孩子的人数统计说明125孩子里面上海身份证号的只有50人还有75位非户籍身份证号的孩子需要人工搜索“户籍第的省市区”工作量巨大闲话少说做个程序先把50个310的孩子“干掉”1.筛选本市户口改成3101并且检查一遍有没有错误的。用了它筛选人数更少48人按照顺序默认一条条修改需要遍历数字32次复制一份 园园通小班孩子分班后补全信息 1.上海户口孩子都选“否” 2.不考虑户籍地 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(2): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 按下箭头16下进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # # 军烈等9项 a [547,221,545,291,554,364,1027,213,1029,290,1509,218] for pos_str in a: x, y pos_str.split(,) x int(x) y int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 确认回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # # # 清空名字点击× # # pyautogui.click(1049,376) # # rand_sleep() # # 清空名字点重制 # pyautogui.click(1259,443) # rand_sleep() wb.close() # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束) 园园通小班孩子分班后补全信息 1.上海户口孩子都选“否” 2.不考虑户籍地 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(29): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 按下箭头16下进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # # 军烈等9项 a [547,221,545,291,554,364,1027,213,1029,290,1509,218] for pos_str in a: x, y pos_str.split(,) x int(x) y int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 确认回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)非常稳定29人13分钟换成一分园继续删选3101一分园15人用了7分钟把里面的红色信息填满。4、外省身份证号的制作外省身份证的前面部分和上海的一样就是最后需要增加户口“省已有市没有区没有”而且“市区”都要手动选择。最过分的是户籍详细地址也是空请问小班家长登记的时候会不写户籍地址吗这都是园园通自己生成的问题给老师增加多少工作量结果今年的报名表上真的没有“外省孩子”的户籍地址组长说她可以马上向家长收集“户籍地址”家长报名表上没有外省户籍地址但是8月7日前就要完成家长收集表单也要时间。所以为了完成任务我决定就把户籍地“省市区”默认全部选第一个地址默认“待收集”。先把所有的外省孩子的“待处理”摘掉。等班级老师收集齐了户籍地址我再根据名字批量修改地址手动选择市、区。 园园通小班孩子分班后补全信息 1.外省户口孩子都选“否” 2.户籍地默认选第一个 3.地址默认都是待补充“ 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(1): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 按下箭头16下进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # # 军烈等9项 a [547,221,545,291,554,364,1027,213,1029,290,1509,218] for pos_str in a: x, y pos_str.split(,) x int(x) y int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press(down)# 按下↓默认选第一个 # pyautogui.press(Enter)# 按回车 rand_sleep() # 外省-市默认第一个 pyautogui.click(1061,195) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # # 外省-区默认第一个 pyautogui.click(1525,188) for i in range(1): pyautogui.press(down)# 按下↓默认选第一个 pyautogui.press(Enter)# 按回车 rand_sleep() # 点击地址(待补充) pyautogui.click(472,342) # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) address待补充 pyperclip.copy(address) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 确认回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)一个孩子大约40秒运行过程中容易超过位置我决定把间隔秒数辣的长的一点外地身份证里面会出现很多问题人不能离开要在旁边盯着。外省详细地址里面已经有地址了。还有一个园区很多条搞了半小时里面至少有5条是外省ID上海户口关闭VS重新手动选了。约到最后几条页面越卡容易错位。还是花了一下午终于把“待处理问题幼儿”搞完了。园园通每天8:00-20:00可用其他时段在维修终于卡点完成了。20260807下午领导发消息——我们完成任务了。感悟1、幸好用Python批量处理了“分班”“标红信息补全”紧赶慢赶在规定时间完成任务。2、虽然写代码进行坐标测试很费时间1-2小时虽然Python运行起来速度很比较慢我用了2-4秒随机暂停虽然Python也会遇到网络卡顿或页面内容不需要填写需要人工暂停程序手动输入……但是Python在大部分时间里模拟人工处理大量的幼儿信息任务了3、它可以不知疲倦地提取信息准确点击和选择各种按钮比人工要稳定多如果人工一条条操作很快会疲倦情绪暴躁容易出错AI编程技术造福所有人