Python實(shí)現(xiàn)監(jiān)控屏幕界面內(nèi)容變化并發(fā)送通知
需求
有時(shí)候需要實(shí)時(shí)監(jiān)控屏幕上的信息是否發(fā)生變化,例如監(jiān)控某個(gè)公眾號(hào)是否發(fā)送了推送,可能是你重要的一個(gè)信息來源渠道,你希望第一時(shí)間留意到,搶熱點(diǎn)等~那么可以使用Python編寫這么一個(gè)腳本進(jìn)行監(jiān)控屏幕像素變化,只要像素發(fā)生變化,基本就是內(nèi)容發(fā)生了變化。
實(shí)現(xiàn)原理
循環(huán)截圖監(jiān)測(cè)界面像素變化,像素發(fā)生變化就是界面發(fā)生變化。
代碼
當(dāng)像素發(fā)生變化,就會(huì)POST一個(gè)通知到你的通知URL,這個(gè)時(shí)候你接收通知的客戶端就會(huì)給你發(fā)送提醒。
import time
import numpy as np
import requests
from PIL import ImageGrab
# 指定要監(jiān)測(cè)的區(qū)域
monitor_area = (0, 0, 100, 100) # (左上角x坐標(biāo), 左上角y坐標(biāo), 右下角x坐標(biāo), 右下角y坐標(biāo))
# 初始截圖
last_screen = np.array(ImageGrab.grab(monitor_area))
# 指定HTTP請(qǐng)求的URL
url = "改成你的POST通知的URL,例如企業(yè)微信、Bark、釘釘、發(fā)送郵件等"
while True:
# 捕獲當(dāng)前屏幕截圖
current_screen = np.array(ImageGrab.grab(monitor_area))
# 將上次截圖和當(dāng)前截圖進(jìn)行比較
difference = np.sum(np.abs(current_screen - last_screen))
if difference > 0:
# 發(fā)送HTTP POST請(qǐng)求
data = {"timestamp": time.time(), "difference": difference}
response = requests.post(url, data=data)
print(response.text)
# 更新上次截圖
last_screen = current_screen
# 休眠一段時(shí)間,然后繼續(xù)循環(huán)
time.sleep(1)接收通知
我使用的是IOS的Bark,直接將通知POST到APP了:

這是比較方便的一種方式,你也可以自己搭建郵件通知服務(wù)、企業(yè)微信機(jī)器人、釘釘機(jī)器人等通知服務(wù)進(jìn)行接收通知。
到此這篇關(guān)于Python實(shí)現(xiàn)監(jiān)控屏幕界面內(nèi)容變化并發(fā)送通知的文章就介紹到這了,更多相關(guān)Python監(jiān)控屏幕內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+pytest接口自動(dòng)化之日志管理模塊loguru簡(jiǎn)介
python中有一個(gè)用起來非常簡(jiǎn)便的第三方日志管理模塊--loguru,不僅可以避免logging的繁瑣配置,而且可以很簡(jiǎn)單地避免在logging中多進(jìn)程多線程記錄日志時(shí)出現(xiàn)的問題,甚至還可以自定義控制臺(tái)輸出的日志顏色,接下來我們來學(xué)習(xí)怎么使用loguru模塊進(jìn)行日志管理2022-05-05
詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇)
這篇文章主要介紹了詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python常用內(nèi)置函數(shù)和關(guān)鍵字使用詳解
在Python中有許許多多的內(nèi)置函數(shù)和關(guān)鍵字,它們是我們?nèi)粘V薪?jīng)??梢允褂玫牡降囊恍┗A(chǔ)的工具,可以方便我們的工作。本文將詳細(xì)講解他們的使用方法,需要的可以參考一下2022-05-05
Python用requests-html爬取網(wǎng)頁的實(shí)現(xiàn)
本文主要介紹了Python用requests-html爬取網(wǎng)頁的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
django rest framework serializer返回時(shí)間自動(dòng)格式化方法
這篇文章主要介紹了django rest framework serializer返回時(shí)間自動(dòng)格式化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python使用Excel將數(shù)據(jù)寫入多個(gè)sheet
這篇文章主要介紹了Python使用Excel將數(shù)據(jù)寫入多個(gè)sheet,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

