Python项目-微信消息自动回复【附源码】

微信消息自动回复

本项目旨在使用PythonWindows GUI自动化工具来自动化微信的操作,作用为读取未读消息、根据关键词回复消息。以下是对代码的详细解释(文章后面会附有本项目的完整源码):

  1. 导入库:
    • pandasnumpy:用于数据处理。
    • uiautomation:用于Windows GUI自动化。
  2. 绑定微信主窗口:
    • 创建一个WindowControl对象,尝试通过名称'微信'找到微信的主窗口。
  3. 切换到微信窗口:
    • 使用SwitchToThisWindow()方法将焦点切换到微信窗口。
  4. 读取回复数据:
    • 使用pandas的read_csv方法读取一个名为’回复数据.csv’的文件,其中包含关键词和对应的回复内容。
  5. 死循环接受消息:
    • 使用一个无限循环来不断检查是否有新的未读消息。
  6. 查找未读消息:
    • 在微信的中查找未读消息。
  7. 处理未读消息:
    • 当检测到未读消息时,点击它。
    • 读取最后一条消息的内容。
    • 使用pandas的apply方法遍历 ‘回复数据.csv’ 中的每一行,检查关键词是否存在于最后一条消息中。如果存在,则返回对应的回复内容。
    • 将匹配到的回复内容转换为列表。
  8. 发送回复:
    • 如果找到了匹配的回复内容,则将其发送到聊天窗口,并发送一个回车键以发送消息。

项目完整源码

import pandas as pd
import numpy as np
from uiautomation import WindowControl, MenuControl# 绑定微信主窗口
wx = WindowControl(Name='微信',
)# 切换窗口
wx.SwitchToThisWindow()
# 寻找会话控件绑定
hw = wx.ListControl(Name='会话')
# 通过pd读取数据
df = pd.read_csv('回复数据.csv', encoding='gb18030')# 死循环接受消息
while True:# 从查找未读消息we = hw.TextControl(searchDepth=4)# 死循环维持,没有超时报错while not we.Exists(0):pass# 存在未读消息if we.Name:# 点击未读消息we.Click(simulateMove=False)# 读取最后一条消息last_msg = wx.ListControl(Name='消息').GetChildren()[-1].Name# 判断关键字msg = df.apply(lambda x: x['回复内容'] if x['关键词'] in last_msg else None, axis=1)# 数据筛选,移除空数据msg.dropna(axis=0, how='any', inplace=True)# 做成列表ar = np.array(msg).tolist()# 能够匹配到数据时if ar:# 将数据输入# 替换换行符号wx.SendKeys(ar[0].replace('{br}', '{Shift}{Enter}'), waitTime=0)# 发送消息wx.SendKeys('{Enter}', waitTime=0)# 通过消息匹配检索会话栏的联系人wx.TextControl(SubName=ar[0][:5]).RightClick()# 没有匹配到数据时else:wx.TextControl(SubName=last_msg[:5]).RightClick()

注意: 本项目优缺点

优点:

  1. 自动化:代码能够自动检测未读消息,并根据预设的关键词自动回复,减少了人工操作的繁琐性。
  2. 灵活性:通过读取CSV文件,可以灵活地设置多个关键词和对应的回复内容,便于管理。
  3. 可扩展性:可以通过修改代码来添加更多功能,如隐藏会话、处理图片消息等。
  4. 高效性:对于大量重复性的消息处理任务,自动化能够显著提高效率。

缺点:

  1. 稳定性:自动化脚本可能受到微信界面变化、更新或网络波动等因素的影响,容易运行不稳定或出错。
  2. 安全性:使用自动化脚本处理微信消息可能存在一定的安全风险,如被黑客利用进行恶意操作。
  3. 依赖性:代码依赖于uiautomation库和pandas库,如果环境中没有这些库,代码将无法运行。
  4. 用户体验:自动化回复可能无法像人工回复那样灵活和个性化,可能会影响用户体验。
  5. 维护成本:随着微信版本的更新和功能的增加,可能需要不断修改代码以保持兼容性,增加了维护成本。
  6. 反作弊机制:微信有自己的反作弊机制,频繁或不合理的自动操作可能触发这些机制,导致账号被封禁或限制。
  7. 数据隐私:处理个人或敏感信息时,需要特别注意数据隐私和安全性问题,避免泄露用户信息。
  8. 错误处理:如遇到无法识别的消息或无法找到控件时,可能会导致程序崩溃或陷入死循环。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《每天5分钟用Flask搭建一个管理系统》第4章:模板渲染

第4章&#xff1a;模板渲染 4.1 模板的概念和使用 模板是一种用于生成输出的方法&#xff0c;它允许您将Python代码和HTML标记混合在一起&#xff0c;从而创建动态网页。 示例代码&#xff1a;基本模板 <!-- templates/home.html --> <!DOCTYPE html> <html…

康养实训室:在康养人才培养中的作用

随着社会经济的发展和人口老龄化的加剧&#xff0c;康养行业对专业人才的需求日益增长。康养实训室作为培养康养人才的重要场所&#xff0c;发挥着不可或缺的作用。 康养实训室为学生提供了实践操作的平台。康养服务涉及众多专业技能&#xff0c;如康复治疗技术、护理技术、健…

智芯开发板----环境配置

一、软件准备 Keil IDE/ IAR IdeSupport_Install_Package已经上传到资源中自行下载即可。 二、IAR环境配置 1.首先将IdeSupport_Install_Package内的IAR文件复制到你的IAR安装路径中如图所示&#xff1a; 2.按如图所示的路径进行复制即可 3.以记事本的方式打开这个xml文件…

零基础STM32单片机编程入门(四)ADC详解及实战含源码视频

文章目录 一.概要二.STM32F103C8T6单片机ADC外设特点三.STM32单片机ADC内部结构图1.ADC相关引脚说明2.ADC通道分类3.触发源4.转换周期5.电压转换计算6.更精确电压转换计算 四.规则通道ADC采集信号流向1.单次转换模式2.连续转换模式 五.CubeMX配置一个ADC采集例程六.CubeMX工程源…

CST电磁仿真计算平台服务器配置

在计算过程中&#xff0c;通常使用全波精确算法和高频近似方法。全波精确算法采用差分或有限元等方法进行求解&#xff0c;而高频近似方法则采用多层快速多极子&#xff08;MLFMA&#xff09;和快速多极子&#xff08;FMM&#xff09;等方法进行求解。此外&#xff0c;还可以使…

大厂程序员上班猝死成常态?

大家好&#xff0c;我是瑶琴呀&#xff0c;拥有一头黑长直秀发的女程序员。 近日&#xff0c;连续看到大厂程序员猝死、低血糖晕倒的新闻&#xff0c;同为程序员感到很难受。互联网加班成常态这是既定事实&#xff0c;尤其在这个内卷严重、经济不景气的环境中&#xff0c;加班…

【漏洞复现】电信网关配置管理系统——命令执行

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 电信网关配置管理系统是一个用于管理和配置电信网关设备的软件系…

高性能Web服务器-Nginx的常用模块

文章目录 Nginx安装Nginx平滑升级与回滚平滑升级流程第1步&#xff0c;下载新版本第2步&#xff0c;编译第3步&#xff0c;执行make第4步&#xff0c;对比新旧版本第5步&#xff0c;备份旧nginx二进制文件第6步&#xff0c;模拟用户正在访问nginx第7步&#xff0c;替换旧的ngin…

【资源】太绝了!整整16本Python必看书籍详细讲解,适合零基础小白,高清电子版PDF开放下载,带你从入门到入土~

小编为初学Python的朋友们汇总了16本零基础入门书籍&#xff0c;包括Python三剑客等&#xff0c;都是在编程届多年畅销的书籍&#xff0c;也是众多从业者的选择&#xff0c;全文详细介绍了书籍主要内容&#xff0c;有需要的宝子根据自身情况自取 【教程领取方式在文末&#xff…

关于前端form提交后端返回文件流触发浏览器下载

这种浏览器自行下载文件的方式&#xff0c;虽然不能在js中了解下载进度&#xff0c;但没有文件大小限制&#xff0c;让浏览器自行保存在默认下载位置&#xff0c;全程省心。 不过有个小坑要提醒注意下&#xff0c;form标记中如果没有带有target“_blank”&#xff0c;那么会在当…

6G技术完整介绍,为什么要发展6G?

要谈 6G&#xff0c;要先从最原始的 3G&#xff08;第三代&#xff09;技术开始讲起&#xff0c;3G 阶段主要包括手机的基本数据传输功能&#xff0c;如传送声音&#xff08;通话&#xff09;及资讯&#xff08;电子邮件、即时通讯等&#xff09;和基本的网页浏览。接著是 4G&a…

Apollo学习笔记

安装依赖&#xff1a; npm install apollo/client graphql react 初始化Apollo Client # 导入依赖库 const { ApolloClient, InMemoryCache, gql } require(apollo/client);# 创建ApolloClient实例 const client new ApolloClient({uri: http://localhost:4000/,cache: ne…

基于weixin小程序农场驿站系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;农场资讯管理&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;用户分享管理&#xff0c;分享类型管理&#xff0c;商品信息管理&#xff0c;商品类型管理 开发系统&#xff1a;Windows 架构模式…

「性能指标」CPU飙高排查实战

上篇提到了什么是 CPU 以及如何计算的。接下来主要说说实际工作中遇到 CPU 飙高如何去排查呢&#xff1f; 往期回顾&#xff1a; 聊聊性能指标 CPU 利用率如何计算的&#xff1f; 问题发现 前段时间我们新上线了一个应用&#xff0c;由于流量一直不大&#xff0c;集群的每秒…

力扣 单链表元素删除解析及高频面试题

目录 删除元素的万能方法 构造虚拟头结点来应对删除链表头结点的情况 一、203.移除链表元素 题目 题解 二、19.删除链表中倒数第K个节点 题目 题解 三、 83.删除某个升序链表中的重复元素&#xff0c;使重复的元素都只出现一次 题目 题解 82.删除某个升序链表中的…

2023年第十四届蓝桥杯JavaB组省赛真题及全部解析(下)

承接上文&#xff1a;2023年第十四届蓝桥杯JavaB组省赛真题及全部解析&#xff08;下&#xff09;。 目录 七、试题 G&#xff1a;买二赠一 八、试题 H&#xff1a;合并石子 九、试题 I&#xff1a;最大开支 十、试题 J&#xff1a;魔法阵 题目来自&#xff1a;蓝桥杯官网…

【星海随笔】vue+vite

开头问一个问题&#xff0c;我发现有的人粉丝是点赞数的好几倍&#xff0c;可能和必须关注他才能阅读他的文章有关。 所以问一下怎么设置为关注才能查看该文章。 screen -ls #查看 id 列表 screen -S <session_name> # 创建一个会话 screen -R <session_id> # 根据…

iconfont-阿里巴巴矢量图标库 在vue项目使用记录

官网地址&#xff1a;https://www.iconfont.cn/manage/index?manage_typemyprojects&projectId4539761 第一步&#xff1a; 下载资源 ->解压到项目文件夹 第二步 在项目中main.ts 或者main.js 引入资源 import //assets/iconfont/font/iconfont.js; import //assets…

IBM Spectrum LSF RTM,针对 IBM Spectrum LSF 环境的高级报告、跟踪和监控工具

亮点 为 IBM Spectrum LSF 环境提供性能监控和报告 监控 FlexNet Publisher 和 Reprisebased 许可证的使用&#xff0c;提供详细和总结性报告 通过多个级别&#xff08;包括应用程序和组织&#xff09;的报告来监控共享存储的利用率 提供强大的生产力工具&#xff0c;包括操…

JVM专题五:类加载器与双亲委派机制

通过上一篇Java的类加载机制相信大家已经搞明白了整个类加载从触发时机&#xff0c;接着我们就来看下类加载器&#xff0c;因为类加载机制是有加载器实现的。 类加载器的分类 启动类加载器 Bootstrap ClassLoader 是 Java 虚拟机&#xff08;JVM&#xff09;的一部分&#x…