如何用Python监测屏幕内容的变化并发送通知?
作者:归人云淡风轻
时间:2023-05-08
浏览:4
需求有时候需要实时监控屏幕上的信息是否发生变化,例如监控某个公众号是否发送了推送,可能是你重要的一个信息来源渠道,你希望第一时间留意到,抢热点等~那么可以使用Python编写这么一个脚本进行监控屏幕像素变化,只要像素发生变化,基本就是内容发生了变化。实现原理循环截图监测界面像素变化,像素发生变化就是界面发生变化。代码当像素发生变化,就会POST一个通知到你的通知URL,这个时候你接收通知的客户端就会给你发送提醒。importtimeimportnumpyasnpimportrequestsfromPILi
需求
有时候需要实时监控屏幕上的信息是否发生变化,例如监控某个公众号是否发送了推送,可能是你重要的一个信息来源渠道,你希望第一时间留意到,抢热点等~那么可以使用Python编写这么一个脚本进行监控屏幕像素变化,只要像素发生变化,基本就是内容发生了变化。
实现原理
循环截图监测界面像素变化,像素发生变化就是界面发生变化。
代码
当像素发生变化,就会POST一个通知到你的通知URL,这个时候你接收通知的客户端就会给你发送提醒。
import time
import numpy as np
import requests
from PIL import ImageGrab
# 指定要监测的区域
monitor_area = (0, 0, 100, 100) # (左上角x坐标, 左上角y坐标, 右下角x坐标, 右下角y坐标)
# 初始截图
last_screen = np.array(ImageGrab.grab(monitor_area))
# 指定HTTP请求的URL
url = "改成你的POST通知的URL,例如企业微信、Bark、钉钉、发送邮件等"
while True:
# 捕获当前屏幕截图
current_screen = np.array(ImageGrab.grab(monitor_area))
# 将上次截图和当前截图进行比较
difference = np.sum(np.abs(current_screen - last_screen))
if difference > 0:
# 发送HTTP POST请求
data = {"timestamp": time.time(), "difference": difference}
response = requests.post(url, data=data)
print(response.text)
# 更新上次截图
last_screen = current_screen
# 休眠一段时间,然后继续循环
time.sleep(1)接收通知
我使用的是IOS的Bark,直接将通知POST到APP了:

这是比较方便的一种方式,你也可以自己搭建邮件通知服务、企业微信机器人、钉钉机器人等通知服务进行接收通知。
作者最新文章
NetLimiter安装配置方法及详细操作步骤教程
2026-10-09 15:54
win10怎么只关闭大版本升级保留安全更新推送
2026-10-06 12:00
3ds Max修改器堆栈顺序对模型的影响及调整技巧
2026-10-04 12:33
荣耀MagicOS 11发布计划与Agent Harness架构解析
2026-09-08 19:23
AI重构企业业务架构:超聚变“智企”范式核心解析
2026-09-08 18:39
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































