Windows环境下Python自动化部署:定时任务与Selenium实战
本文详细介绍在Windows系统中利用Python脚本结合Selenium库实现自动化数据采集与更新的方法。内容涵盖通过psutil监控Chrome进程状态、处理长时间未生成数据的异常退出机制,以及利用Windows计划任务实现脚本的周期性自动执行。此外,还包含基于日志的企业微信错误报警集成方案,确保自动化流程的稳定运行。
近期遇到一项业务需求:系统需定期检查数据库中是否存在缺失图片的数据记录。若发现此类数据,则自动访问对应网站生成图片数据,并将其更新回数据库。该过程要求具备周期性检测能力,以确保数据的持续完整性。
实现该需求主要涉及两个核心环节:一是编写并运行Python自动化脚本,二是将该脚本部署至Windows系统的定时任务中,以实现无人值守的周期性执行。
一、Python脚本逻辑设计
1、运行状态判断:在脚本启动时,首先需判断当前任务是否已在运行中。由于自动化过程依赖谷歌浏览器(Chrome),因此只需检测系统中是否存在Chrome进程即可判断任务状态。
isRunning=False
for proc in psutil.process_iter(['pid', 'name']):
if proc.info['name'] == 'chrome.exe':
isRunning=True
2、执行中状态处理:若检测到Chrome进程正在运行,脚本需读取日志文件以获取最新一条数据生成的时间戳,并与当前系统时间进行比对。若计算结果显示脚本长时间未生成新数据(例如超过60分钟),则判定为异常停滞,此时需强制关闭Chrome浏览器进程,并等待下一次触发。此步骤旨在防止因其他用户手动打开浏览器且未正常关闭,导致进程残留从而误判为“执行中”的情况。
# 判断是否超过60分钟没跑新的作品
isClear=False
if len(lines) == 0:
isClear=True
else:
interTime=int(time.time())-int(time.mktime(time.strptime(lines[-1][1:20], "%Y-%m-%d %H:%M:%S")))
if (interTime / 60)>60:
isClear=True
if isClear==True:
browserName = "chrome.exe"
cmd = "taskkill /f /t /im {}".format(browserName)
os.system(cmd)
3、未执行状态处理:若确认无Chrome进程运行,则调用Python的selenium库启动谷歌浏览器。4、数据获取与处理:查询数据库中尚未包含图片的数据记录,遍历这些记录,利用selenium访问各数据对应的网站详情页,模拟用户点击操作以获取图片信息并保存。5、日志记录:在保存过程中,若超过预设时间仍未成功保存,则将错误信息追加至日志文件;若保存成功,同样记录成功日志。第二步中关于长时间未生成数据的判断逻辑,正是依赖于此处记录的日志信息。
fo = open("./img-log.txt", "a")
fo.write("\n" + "[" + str(datetime.datetime.now()) + "] 图片执行完成")
fo.close()
6、错误报警机制:由于是自动化运行,人工无需实时监控,因此需设置异常报警。当错误日志文件中的记录条数累积达到一定阈值(如100条)时,通过调用企业微信接口发送错误通知,确保运维人员能及时发现并处理问题。
headers = {"Content-type": "application/json"}
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="
r = requests.post(url,json.dumps({
"msgtype": "text",
"text":
{
"content": "图片保存失败数大于100"
}
}),headers)
7、资源清理:当整个数据获取循环执行完毕后,需主动关闭Chrome浏览器进程,以释放资源并避免状态残留。关闭操作使用的命令与第二步中强制终止进程的命令一致。
二、Windows定时任务部署
1、创建任务:打开Windows控制面板,依次进入“系统和安全” -> “管理工具” -> “计划任务”,点击右侧的“创建任务”选项。

2、配置触发器:为了实现周期性检测,需在“触发器”选项卡中设置具体的执行时间以及重复任务的间隔时间,确保脚本能按照预定频率定期触发。

3、配置操作:在“操作”选项卡中,指定Python解释器的完整路径、待执行的Python脚本文件路径,以及脚本执行时的起始目录(工作目录)。

4、部署完成:至此,定时任务配置完毕。系统将在指定时间自动触发Python脚本,实现每天定时运行数据抓取与更新任务。
本文介绍了在Windows环境下利用Python和Selenium实现自动化部署的完整流程,包括脚本逻辑、进程管理、日志报警及定时任务配置。更多Python自动化部署相关内容,欢迎查阅本站往期文章或继续关注后续更新,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













