Windows环境下Python自动化部署:定时任务与Selenium实战

南乔
南乔
发布时间:2026-10-16| 4人浏览过
原创

本文详细介绍在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自动化部署相关内容,欢迎查阅本站往期文章或继续关注后续更新,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。