Python 實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程屏幕截圖案例
最近各地中小學(xué)都在開展線上教學(xué),有些不自覺的小朋友們用電腦在線學(xué)習(xí)的時候會趁家長不在的時候偷偷玩游戲、看漫畫。
本程序screenshot.py就是用來監(jiān)控學(xué)生機(jī)(windows系統(tǒng))屏幕活動的一個小腳本。
首先在學(xué)生機(jī)上安裝python3環(huán)境。另外需要安裝pyautogui:
pip install pyautogui
學(xué)生機(jī)啟動后臺進(jìn)程方法:在學(xué)生機(jī)上建立一個批處理文件,用無窗口python運(yùn)行命令,以下根據(jù)你自己的python安裝位置和腳本所在文件夾調(diào)整。。
c:python37pythonw.exe d:pyscreenshot.py 1>1.txt 2>2.txt
from http.server import BaseHTTPRequestHandler, HTTPServerimport pyautogui, socket# for windows, screenshot.py# 家長監(jiān)控地址: http://192.168.1.3:8009/PORT = 8008# 獲取學(xué)生機(jī)局域網(wǎng)地址IP = socket.gethostbyname(socket.gethostname())#windowsclass myHandler(BaseHTTPRequestHandler): def do_GET(self): img = pyautogui.screenshot() #屏幕截圖 if img: self.send_response(200) #HTTP 狀態(tài)碼 self.send_header(’Content-Type’, ’image/png’) self.end_headers() img.save(self.wfile, ’PNG’) # 寫入HTTP 響應(yīng)流文件def main(): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #判斷當(dāng)前端口是否已經(jīng)打開 result = sock.connect_ex((IP, PORT)) portopen = result == 0 sock.close() if not portopen: #啟動web服務(wù)器,用自定義的響應(yīng)處理類 server = HTTPServer((IP, PORT), myHandler) server.serve_forever() # 服務(wù)器持續(xù)監(jiān)聽 except: passif __name__ == ’__main__’: main()
WIFI環(huán)境下,在家長機(jī)器或手機(jī)瀏覽器中輸入下面的網(wǎng)址(假設(shè)學(xué)生機(jī)IP為192.168.1.3):
http://192.168.1.3:8008/
就可看到學(xué)生當(dāng)前的屏幕活動??伤⑿隆?/p>
補(bǔ)充:python代碼實(shí)現(xiàn)截圖識字
有次網(wǎng)上down了個截圖實(shí)識的軟件,發(fā)現(xiàn)一天只能用10次要錢才能解鎖免費(fèi),很氣,作為一個菜雞怎么能忍受
于是自己用python寫了個簡單的小工具,分享給大家
代碼如下: 先安裝庫
from PIL import ImageGrab,Imageimport keyboard #監(jiān)控鍵盤from time import sleepimport sysfrom aip import AipOcrclass API(): def picture2Text(filePath): API_ID = ’######’ API_KEY = ’#######’ SECRET_KEY = ’######’ aipocr = AipOcr(API_ID, API_KEY, SECRET_KEY) image = API.getFileContent(filePath) texts = aipocr.basicGeneral(image) allTexts = ’’ for words in texts[’words_result’]: allTexts = allTexts + ’’.join(words.get(’words’,’’)) return allTexts # print(texts) def getFileContent(a): with open(a,’rb’) as fp: return fp.read()def seceenShot(): ’’’用于獲取剪切板圖片信息并保存到本地’’’#ctrl+alt+a 這個看你用什么截圖,qq是個 if keyboard.wait(hotkey=’ctrl+alt+a’) == None: if keyboard.wait(hotkey=’enter’) == None: sleep(0.01) im_gray = ImageGrab.grabclipboard()# print(im_gray) if isinstance(im_gray,Image.Image):im_gray.save('250.jpg') else:print(’請重新截圖’) else: print(’請使用qq截圖,小逗比(記得截圖后按enter)’)if __name__ == ’__main__’: for _ in range(sys.maxsize): seceenShot() test = API.picture2Text(r’250.jpg’) print(test)
上述11,12,13的是百度云的工單賬號和密鑰,如圖下,自己可以注冊的免費(fèi)
33行和34行是監(jiān)控鍵盤的
33行是開始截圖:ctrl+alt+a (這個看自己的截圖工具是什么鍵就換成什么)
34行是結(jié)束:enter (一定要按enter結(jié)束截圖)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. 利用單元測試對PHP代碼進(jìn)行檢查2. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML3. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析4. python excel和yaml文件的讀取封裝5. python3實(shí)現(xiàn)往mysql中插入datetime類型的數(shù)據(jù)6. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決7. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個IP代理模塊8. Django 權(quán)限管理(permissions)與用戶組(group)詳解9. App啟動優(yōu)化-Android性能優(yōu)化10. 詳解docker pull 下來的鏡像都存到了哪里
