微信机器人

微信是目前中国最流行的交流方式,而Python是最流行的自动化开发语言。

很多场合,我们可以使用Python自动化一些微信的工作。

比如,我是一个 旅游微商, 现在客户和我的沟通都是通过问微信群。

群的名称为 白月黑羽长滩旅游群。

现在群里有300多人了,经常有人问 从北京去长滩岛价格是多少,上海去长滩岛价格是多少。

一个个回复很麻烦,我们是不是可以用Python做一个自动回复的程序呢?


我们分析一下这里面的关键点。

  1. 我们的自动化程序要能够从微信获取到群里面发出来的消息
  2. 分析里面是否包含了 类似 北京 价格上海 价格 这样的关键字
  3. 如果 匹配了这些关键字,程序就回复 准备好的内容。

其中第2步,可以正好使用前面学习过的 正则表达式 做匹配,

而第 1,3 步 需要我们的程序能够 接收和发送微信消息, 这显然需要腾讯微信提供支持。

腾讯并没有官方公开提供这样的接口。

但是,网上的朋友分析了微信网页版的收发消息,得知了微信API接口的格式。

而且,还有人做好了库,方便我们调用这些库,直接收发消息。

其中 itchat 和 wxpy 就是用的比较多的。

我们就以 wxpy 为例 实现一个简单的 微信群自动回复机器人 程序



首先我们需要安装wxpy库,非常简单,直接运行命令 pip install wxpy 即可。

如何使用这个库,大家可以查看它的官方文档 https://wxpy.readthedocs.io/zh/latest/index.html

搞懂之后,就可以写代码了,代码如下

# 导入模块
from wxpy import *
# 初始化机器人,扫码登陆
bot = Bot()
# 搜索 名称包含 "长滩岛旅游" 的群
group = bot.groups().search('长滩岛旅游')[0]

import re
# 定义自动回复表
# key为正则表达式匹配对象
answerTable = {
    # 问题中包含上海 价格
    # 可能是问从上海 到菲律宾 旅游价格
    re.compile(r'上海.*价格'):  '''
    上海到长滩岛 
    
    单人7日游:9800元
    双人3日游:18000元
    家庭3人7日游:22000元
    ''',

    # 问题中包含北京 价格
    # 可能是问从北京 到菲律宾 旅游价格
    re.compile(r'北京.*价格'): '''
    北京到长滩岛 
    
    单人7日游:9900元
    双人3日游:19000元
    家庭3人7日游:24000元
    ''',
}


# 回复群中的 TEXT 文本消息:
@bot.register(group,TEXT)
def auto_reply(msg):
    print(msg)

    # 寻找匹配问答
    for k,v in answerTable.items():
        # 如果匹配了关键字,返回预设回答
        if k.match(msg.text) is not None:
            print('匹配了{v}')
            return v
        
    # 如果不匹配返回None
    return None

# 堵塞线程,并进入 Python 命令行
embed()

这个程序运行时,会显示一个二维码图片,需要用你手机微信扫描登录。相当于登录微信网页版。

然后,如果有人在 群里 发出的文本信息中,包含了自动回复表里面匹配,比如 上海到长滩的价格多少啊 ,程序就会代表你的微信号,自动回复 消息。

如下所示:

image


扫码分享给朋友,一起学更有动力哦





上一页 下一页