Python實現(xiàn)監(jiān)控屏幕界面內容變化并發(fā)送通知
需求
有時候需要實時監(jiān)控屏幕上的信息是否發(fā)生變化,例如監(jiān)控某個公眾號是否發(fā)送了推送,可能是你重要的一個信息來源渠道,你希望第一時間留意到,搶熱點等~那么可以使用Python編寫這么一個腳本進行監(jiān)控屏幕像素變化,只要像素發(fā)生變化,基本就是內容發(fā)生了變化。
實現(xiàn)原理
循環(huán)截圖監(jiān)測界面像素變化,像素發(fā)生變化就是界面發(fā)生變化。
代碼
當像素發(fā)生變化,就會POST一個通知到你的通知URL,這個時候你接收通知的客戶端就會給你發(fā)送提醒。
import time import numpy as np import requests from PIL import ImageGrab # 指定要監(jiān)測的區(qū)域 monitor_area = (0, 0, 100, 100) # (左上角x坐標, 左上角y坐標, 右下角x坐標, 右下角y坐標) # 初始截圖 last_screen = np.array(ImageGrab.grab(monitor_area)) # 指定HTTP請求的URL url = "改成你的POST通知的URL,例如企業(yè)微信、Bark、釘釘、發(fā)送郵件等" while True: # 捕獲當前屏幕截圖 current_screen = np.array(ImageGrab.grab(monitor_area)) # 將上次截圖和當前截圖進行比較 difference = np.sum(np.abs(current_screen - last_screen)) if difference > 0: # 發(fā)送HTTP POST請求 data = {"timestamp": time.time(), "difference": difference} response = requests.post(url, data=data) print(response.text) # 更新上次截圖 last_screen = current_screen # 休眠一段時間,然后繼續(xù)循環(huán) time.sleep(1)
接收通知
我使用的是IOS的Bark,直接將通知POST到APP了:
這是比較方便的一種方式,你也可以自己搭建郵件通知服務、企業(yè)微信機器人、釘釘機器人等通知服務進行接收通知。
到此這篇關于Python實現(xiàn)監(jiān)控屏幕界面內容變化并發(fā)送通知的文章就介紹到這了,更多相關Python監(jiān)控屏幕內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python+pytest接口自動化之日志管理模塊loguru簡介
python中有一個用起來非常簡便的第三方日志管理模塊--loguru,不僅可以避免logging的繁瑣配置,而且可以很簡單地避免在logging中多進程多線程記錄日志時出現(xiàn)的問題,甚至還可以自定義控制臺輸出的日志顏色,接下來我們來學習怎么使用loguru模塊進行日志管理2022-05-05詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇)
這篇文章主要介紹了詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07Python用requests-html爬取網(wǎng)頁的實現(xiàn)
本文主要介紹了Python用requests-html爬取網(wǎng)頁的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07django rest framework serializer返回時間自動格式化方法
這篇文章主要介紹了django rest framework serializer返回時間自動格式化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python使用Excel將數(shù)據(jù)寫入多個sheet
這篇文章主要介紹了Python使用Excel將數(shù)據(jù)寫入多個sheet,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05