当前位置:   article > 正文

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

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

注意: 本项目优缺点

优点:

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

缺点:

  1. 稳定性:自动化脚本可能受到微信界面变化、更新或网络波动等因素的影响,容易运行不稳定或出错。
  2. 安全性:使用自动化脚本处理微信消息可能存在一定的安全风险,如被黑客利用进行恶意操作。
  3. 依赖性:代码依赖于uiautomation库和pandas库,如果环境中没有这些库,代码将无法运行。
  4. 用户体验:自动化回复可能无法像人工回复那样灵活和个性化,可能会影响用户体验。
  5. 维护成本:随着微信版本的更新和功能的增加,可能需要不断修改代码以保持兼容性,增加了维护成本。
  6. 反作弊机制:微信有自己的反作弊机制,频繁或不合理的自动操作可能触发这些机制,导致账号被封禁或限制。
  7. 数据隐私:处理个人或敏感信息时,需要特别注意数据隐私和安全性问题,避免泄露用户信息。
  8. 错误处理:如遇到无法识别的消息或无法找到控件时,可能会导致程序崩溃或陷入死循环。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/1002825
推荐阅读
相关标签
  

闽ICP备14008679号