windows中python實現(xiàn)自動化部署
這段時間遇到一個需求是如果庫里面有沒有圖片的數(shù)據(jù),則訪問我們的網(wǎng)站生成圖片數(shù)據(jù)并更新庫,要求每隔一段時間就要檢測。
該需求主要為兩個部分:一是python腳本執(zhí)行;二是windows部署定時任務(wù);
一、python腳本
1、運行腳本:判斷當(dāng)前任務(wù)是否正在執(zhí)行,因為使用的是谷歌瀏覽器,所以只用判斷谷歌進程是否正在執(zhí)行
isRunning=False for proc in psutil.process_iter(['pid', 'name']): if proc.info['name'] == 'chrome.exe': isRunning=True
2、執(zhí)行中:根據(jù)日志信息取出最新一條數(shù)據(jù)的時間,然后與當(dāng)前時間計算,判斷腳本是否長時間沒生成新的數(shù)據(jù),若長時間未生成新的數(shù)據(jù),則關(guān)閉谷歌瀏覽器進程,等待下次觸發(fā)。 這一步是為了防止其它用戶打開瀏覽器沒關(guān)閉,導(dǎo)致瀏覽器進程一直顯示執(zhí)行中。
# 判斷是否超過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、未執(zhí)行:則使用python的selenium庫打開谷歌瀏覽器
4、獲取數(shù)據(jù):查詢當(dāng)前庫中沒有圖片的數(shù)據(jù),然后循環(huán)使用selenium庫去訪問改數(shù)據(jù)的網(wǎng)站詳情頁,模擬用戶點擊動作,保存圖片信息
5、日志記錄:如果超過限制時間未保存成功,則將記錄寫在日志文件中,若保存成功也將日志信息寫在文件中,第二步中就用到此處的信息。
fo = open("./img-log.txt", "a") fo.write("\n" + "[" + str(datetime.datetime.now()) + "] 圖片執(zhí)行完成") fo.close()
6、錯誤報警:因為是自動化去跑,執(zhí)行就不用關(guān)心,所以需要設(shè)置報警,當(dāng)錯誤日志文件中達到一定條數(shù)時,通過企業(yè)微信,發(fā)送錯誤信息通知
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": "圖片保存失敗數(shù)大于100" } }),headers)
7、關(guān)閉:當(dāng)整個循環(huán)執(zhí)行結(jié)束后,需要關(guān)閉谷歌進程,防止狀態(tài)一直是執(zhí)行中,關(guān)閉命令也就是第二步中的命令
二、windows部署定時任務(wù)
1、創(chuàng)建任務(wù):進入控制面板-》系統(tǒng)和安全-》管理工具-》計劃任務(wù)-》創(chuàng)建任務(wù)
2、觸發(fā)器:因為我們要每隔一段時間就要檢測庫中數(shù)據(jù),所以需要設(shè)置一下執(zhí)行時間和重復(fù)任務(wù)間隔時間,保證任務(wù)每過一段時間就要執(zhí)行
3、操作:這里需要選擇python地址、腳本地址、腳本執(zhí)行位置
4、至此定時任務(wù)就部署完成,等到指定時間后,就會觸發(fā)python的腳本,每天定時的跑數(shù)據(jù)
到此這篇關(guān)于windows中python實現(xiàn)自動化部署的文章就介紹到這了,更多相關(guān)python 自動化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python編程之列表操作實例詳解【創(chuàng)建、使用、更新、刪除】
這篇文章主要介紹了Python編程之列表操作,結(jié)合實例形式分析了Python列表的創(chuàng)建、使用、更新、刪除等實現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-07-07python基于concurrent模塊實現(xiàn)多線程
這篇文章主要介紹了python基于concurrent模塊實現(xiàn)多線程,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04