1. 项目背景与需求分析
上周上海"园园通"幼儿数据采集平台进行了重大改版,更新为"直报通"页面。这一改动导致系统内所有幼儿数据都被标记为"需要处理"状态。经过检查发现,问题主要集中在幼儿的"出生地区县"和"籍贯区县"字段缺失。
在实际操作中,我发现不同园所、不同班级的数据缺失情况存在差异:
- 总园中大班:需要补充"出生地区县"、"籍贯城市"、"籍贯区县"三个字段
- 分园托小班:仅需补充"出生地区县"和"籍贯区县"两个字段
由于涉及数百条数据,手动逐条修改不仅耗时耗力,还容易出错。考虑到数据更新主要是为了系统完整性而非准确性(特别是托小班数据),我决定开发一个Python自动化脚本来批量处理这些数据。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案设计
2.1 工具选型与原理
我选择使用Python的pyautogui库来实现自动化操作,主要基于以下考虑:
- 跨平台兼容性:园园通系统运行在浏览器中,pyautogui可以模拟真实用户操作
- 操作精准度:通过屏幕坐标定位,可以精确控制点击位置
- 开发效率:相比其他自动化工具,Python脚本更易于调试和维护
核心实现原理:
- 使用pyautogui模拟鼠标移动、点击和键盘操作
- 通过pyperclip实现文本复制粘贴
- 利用pygetwindow管理窗口状态
- 添加适当的延时确保操作可靠性
2.2 关键问题与解决方案
在实际开发中遇到几个关键问题:
问题1:外地户籍幼儿字段差异
- 外地户籍幼儿需要填写更多字段,导致原有脚本报错
- 解决方案:通过身份证号前缀"3101"筛选上海户籍幼儿优先处理
问题2:页面元素定位不稳定
- 浏览器窗口大小变化会影响坐标定位
- 解决方案:
- 固定浏览器窗口大小和位置
- 在关键操作前添加适当延时
- 实现窗口最小化/恢复功能
问题3:长列表选择效率低
- 地区选择需要多次按下箭头键
- 优化方案:
- 计算最优按键次数(实测8次可定位到目标选项)
- 添加微小延时确保每次按键都被处理
3. 代码实现详解
3.1 基础环境准备
python复制import os, time
import pyautogui #
