首页 > 编程语言 >利用python 实现微信自动回复

利用python 实现微信自动回复

时间:2024-04-04 13:30:25浏览次数:37  
标签:控件 Name python 微信 TextControl 回复 msg ar wx

全是干货,上代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-


import pandas as pd
import numpy as np

from uiautomation import WindowControl, MenuControl


# 绑定微信主窗口
wx = WindowControl(
    Name='微信',
    # searchDepth=1
)

# 切换窗口
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()

        # 匹配右击控件
        # ment = MenuControl(ClassName='CMenuWnd')
        # 点击右键控件中的不显示聊天
        # ment.TextControl(Name='不显示聊天').Click()

把 回复数据.csv文件放到你的 与 py文件同一个文件夹就行

序号,关键词,回复内容
1,你好,我不好
2,哈哈哈,呵呵呵
3,告辞,好的
4,时间上最好的语言,python
5,棒,那必须的

标签:控件,Name,python,微信,TextControl,回复,msg,ar,wx
From: https://blog.csdn.net/weixin_42759398/article/details/137275935

相关文章

  • 基于微信小程序的无中介租房系统
    本基于微信小程序的无中介租房系统主要实现了房东功能模块、租客功能模块和管理员功能模块三大部分,系统结构图如图4-1所示。4.3.2数据库表设计本基于微信小程序的无中介租房系统在开发过程中使用MySQL数据库系统进行系统数据的储存,以下是本系统的主要数据库表信息。表4.1......
  • 探索Anaconda:创建Python虚拟环境
    目录 1.创建虚拟环境2.激活虚拟环境3.退出虚拟环境:4.常用命令4.1安装(使用pip或者conda都行,下面展示conda)4.2查看已安装的包4.3更新包4.4删除虚拟环境 1.创建虚拟环境打开AnacondaPrompt(或者终端),使用以下命令创建一个名为myenv的Python虚拟环境:conda......
  • django基于python的学生选课成绩信息管理系统7s7c8
    随着国内外教育事业的不断发展,加快教育信息化建设已成为我国教育事业改革与发展的必然选择。我国高校招生规模不断扩大,大量的学生信息管理就成了一个非常棘手的问题。依靠传统模式的利用人工进行学生的信息管理,费时费力,严重影响了教师的工作效率。而基于网络化的学生信息管理平......
  • python中小学教学一体化管理系统django-pycharm毕业设计
    根据近年来学校的发展情况,结合文献资料,对槐荫中学教学管理的信息化;至此,开发具有一定的技术可行性和安全性。该系统的核心内容是对首页、个人中心、学生管理、教师管理、教学计划管理、授课信息管理、培养计划管理、学生评价管理、在线考试管理、试题内容管理、系统管理、考试......
  • 【python学习过程--day1】认识python及其开发工具:VScode和pycharm的安装和激活
    认识python        Python是一种高级、通用、解释型编程语言,由GuidovanRossum在1980年代末和1990年代初设计开发的。它具有简洁清晰的语法和强大的标准库,因此被广泛用于Web开发、科学计算、人工智能、数据分析、系统自动化等领域。Python的设计哲学强调代码的可读性......
  • Python爬虫如何快速入门
    写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫。一、什么是网络爬虫网络爬虫,英文名称为WebCrawler或Spider,是一种通过程序在互联网上自动获取信息的技术。它根据指定的规则,从互联网上下载网页、图片、视......
  • 每日面经分享(python进阶 part2)
    Python中的装饰器和上下文管理器区别是什么?它们分别适用于哪些场景?a.装饰器用于在函数或类的外部添加额外功能,而上下文管理器用于管理资源的获取和释放。b.装饰器是一种用于修改函数或类行为的技术。适用于需要在函数或类的外部添加额外功能的场景,比如日志记录、性能监......
  • 量化交易入门(四十一)ASI指标Python实现和回测
    老规矩先上图,看看ASI指标使用苹果数据回测后的结果如何。一、策略运行结果执行的结果:StartingPortfolioValue:100000.00FinalPortfolioValue:92514.82AnnualizedReturn:-1.93%SharpeRatio:-0.27MaxDrawdown:25.34%MaxDrawdownPeriod:441唉,好像亏钱了......
  • Python常用算法思想--总概篇
    算法的起源:欧几里德的《几何原本》中阐述的求两个数的最大公约数的过程。算法的定义:解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表用系统的方法描述解决问题的策略机制。算法的本质:算法是程序的灵魂,也是衡量一位程序员水平高低的最好参照物。算法的表示方......
  • Python_matplotlib进阶
    Python_matplotlib跳转链接之前的博客中已经展示了使用python的matplotlib库进行一些基础图像的绘制,本篇进一步展示一些matplotlib中的一些进阶图像绘制。importpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']Titanic=......