windows中python实现自动化部署

 更新时间:2022年08月17日 14:50:53   作者:修复BUG中  
本文主要介绍了windows中python实现自动化部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这段时间遇到一个需求是如果库里面有没有图片的数据,则访问我们的网站生成图片数据并更新库,要求每隔一段时间就要检测。

该需求主要为两个部分:一是python脚本执行;二是windows部署定时任务;

一、python脚本

1、运行脚本:判断当前任务是否正在执行,因为使用的是谷歌浏览器,所以只用判断谷歌进程是否正在执行

isRunning=False
for proc in psutil.process_iter(['pid', 'name']):
	if proc.info['name'] == 'chrome.exe':
		isRunning=True

2、执行中:根据日志信息取出最新一条数据的时间,然后与当前时间计算,判断脚本是否长时间没生成新的数据,若长时间未生成新的数据,则关闭谷歌浏览器进程,等待下次触发。 这一步是为了防止其它用户打开浏览器没关闭,导致浏览器进程一直显示执行中。

# 判断是否超过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、未执行:则使用python的selenium库打开谷歌浏览器
4、获取数据:查询当前库中没有图片的数据,然后循环使用selenium库去访问改数据的网站详情页,模拟用户点击动作,保存图片信息
5、日志记录:如果超过限制时间未保存成功,则将记录写在日志文件中,若保存成功也将日志信息写在文件中,第二步中就用到此处的信息。

fo = open("./img-log.txt", "a")
fo.write("\n" + "[" + str(datetime.datetime.now()) + "] 图片执行完成")
fo.close()

6、错误报警:因为是自动化去跑,执行就不用关心,所以需要设置报警,当错误日志文件中达到一定条数时,通过企业微信,发送错误信息通知

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、关闭:当整个循环执行结束后,需要关闭谷歌进程,防止状态一直是执行中,关闭命令也就是第二步中的命令

二、windows部署定时任务

1、创建任务:进入控制面板-》系统和安全-》管理工具-》计划任务-》创建任务

2、触发器:因为我们要每隔一段时间就要检测库中数据,所以需要设置一下执行时间和重复任务间隔时间,保证任务每过一段时间就要执行

3、操作:这里需要选择python地址、脚本地址、脚本执行位置

4、至此定时任务就部署完成,等到指定时间后,就会触发python的脚本,每天定时的跑数据

 到此这篇关于windows中python实现自动化部署的文章就介绍到这了,更多相关python 自动化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例

    pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例

    今天小编就为大家分享一篇pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Python中matplotlib库安装失败的经验总结(附pycharm配置anaconda)

    Python中matplotlib库安装失败的经验总结(附pycharm配置anaconda)

    最近根据领导布置的学习任务,开始学习python中的matplotlib,朋友告诉我这个很简单,然而刚踏入安装的门槛,就遇到了安装不成功的问题,下面这篇文章主要给大家介绍了关于Python中matplotlib库安装失败的经验总结,需要的朋友可以参考下
    2022-08-08
  • Python实现简单文本字符串处理的方法

    Python实现简单文本字符串处理的方法

    这篇文章主要介绍了Python实现简单文本字符串处理的方法,涉及Python针对文本字符串的切割、计算、转换等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python中Playwright的常用操作方法分享

    Python中Playwright的常用操作方法分享

    本文详细介绍了Playwright的常用操作方法,包括获取页面元素、点击按钮和链接等。这些方法可以帮助开发者更加高效地进行自动化测试和爬虫开发,需要的可以参考一下
    2023-05-05
  • Python Numpy 实现交换两行和两列的方法

    Python Numpy 实现交换两行和两列的方法

    今天小编就为大家分享一篇Python Numpy 实现交换两行和两列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • WxPython实现无边框界面

    WxPython实现无边框界面

    这篇文章主要为大家详细介绍了WxPython实现无边框界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 基于python3的socket聊天编程

    基于python3的socket聊天编程

    这篇文章主要为大家详细介绍了基于python3的socket聊天编程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python实时检测键盘输入函数的示例

    python实时检测键盘输入函数的示例

    今天小编就为大家分享一篇python实时检测键盘输入函数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python中Pyqt5使用Qlabel标签进行视频播放

    python中Pyqt5使用Qlabel标签进行视频播放

    这篇文章主要介绍了python中Pyqt5使用Qlabel实现标签进行视频播放,QLabel是界面中的标签类,继承自QFrame类,提供文本和图像的显示,是一种展示控件,下文相关内容介绍需要的小伙伴可以参考一下
    2022-04-04
  • python入门之基础语法学习笔记

    python入门之基础语法学习笔记

    学习python过程中需要了解的一些基础语法特整理一下方便更开始接触python的朋友
    2020-02-02

最新评论