用wxpy做一个微信聊天机器人(详解)

用python写一个微信聊天机器人可以利用python中的wxpy库或者itchat模块,我在网上看到好多都是使用的itchat,但是我这里使用的是wxpy库,wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。使用wxpy这个库可以做好多好多事,比如自动恢复消息、跟人聊天、自动加人啊等等等等,这些都可以在wxpy这个文档中找到使用方法的!!!我做的主要就是根据别人发的消息来回复

 

这个是wxpy文档的链接:https://wxpy.readthedocs.io/zh/latest/

(不想看文档的话在文章末尾有惊喜哦)

这个是itchat文档的链接:https://itchat.readthedocs.io/zh/latest/ 

 

第一步就是先下载wxpy

在电脑上下载wxpy库,使用命令pip install wxpy就好了,如果你电脑上同时下载有python2和python3,就是用下面的命令

py -3 -m pip install wxpy

py -2 -m pip install wxpy

 

下载好wxpy后,就可以开始制作我们自己的机器人了,下面说说我做机器人的过程以及遇到的一些问题

from wxpy import *        #导入wxpy模块

robot = Bot()        #初始化机器人,会出现一个二维码,扫码登录即可

机器人要想聊天,首先就得知道别人说了什么,这就需要机器人去监听对方到底说了什么,请看下面代码

#这个是用来监听群聊的消息,而且监听的消息类型为文本消息,若要监听朋友的,将Group改为myFriend就行了

@robot.register(Group,TEXT)   

#参数msg就是监听到的消息

def print_group_msg(msg):   

    print(msg)   #将监听到的消息打印到控制台

    msg.reply("*******")   #  ****代表所要回复的内容,使用reply()函数

做个简单的机器人其实就只需要上面这几行代码就好了,你可以根据自己想要做的将函数补充完整就好了,

 

在做机器人的过程中,有可能需要获取发现消息人的昵称,或者时间啊,这些在文档中都有

如果想知道是谁发的消息,使用

msg.member

就行了,但是这类型不是string类型,你可以在使用过程中是看看它的类型到底是什么

在做机器人的过程中还会出现一种情况,就是如果消息被撤回了该怎么办!

在微信里,每一条消息都对应有一个id号,我们可以通过这个id号还找到被撤回的消息,或者用于还原被撤回的消息(但这不是我要用的就不仔细写了)

这个获取消息的id :

msg_id=msg.id

这个则是获取被撤回信息的id:

msg_id_regex = re.compile('<msgid>(\d+)</msgid>')     # 被撤回消息的msgid的匹配规则

old_msg_id = msg_id_regex.findall(raw.get('Content'))[0]   # 获取被撤回消息的msgid

当然仅仅写以上内容,会导致你的程序主程序运行结束自然退出。wxpy给出了embed()方法,在程序末尾(或其他你想要暂停调试的地方)加上embed()方法就可以让程序保持运行,同时进入Python命令行。

给个完整的例子代码

from wxpy import *

robot=Bot()

@robot.register(Group,TEXT) #注册消息处理方法

def print_group_msg(msg):

    print(msg)

    message= "{}".format(msg.text)   #msg.text是只有消息内容,不包含有其他东西

    msg.reply(message)  #恢复一样的消息

embed()

最后附上一张在知乎中看到的wxpy的速查表 

  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值