Python实现微信自动回复和指定发送群聊消息

阅读本文大约需要5分钟

先说一件事,抱着“沉淀成本不是成本”的态度,最近会将以前写的文章删除或者进行合并,按照高人的指点进行格式上和内容上的完善。

因为一直写基础的缘故,今天朋友提了下面这样一个需求。就顺便写了一个小项目和大家分享一下

2

itchat:

导入模块和申明变量:

自动回复:

这里主要注意的是装饰器的使用,这里其实还是可以监听图片,视频,文档之类的。为了简便,这里只是文本,所以如果对方发送的是图片,会打印成转码格式

群聊发送消息:

1def SendChatRoomsMsg(gname, context):
 2    # 获取群组所有的相关信息(注意最好群聊保存到通讯录)
 3    myroom = itchat.get_chatrooms(update=True)
 4    # myroom = itchat.get_chatrooms()
 5    #定义全局变量(也可以不定义)
 6    global username
 7    # 传入指定群名进行搜索,之所以搜索,是因为群员的名称信息也在里面
 8    myroom = itchat.search_chatrooms(name=gname)
 9    for room in myroom:
10        # print(room)
11        #遍历所有NickName为键值的信息进行匹配群名
12        if room[NickName] == gname:
13            username = room[UserName]
14            # 得到群名的唯一标识,进行信息发送
15            itchat.send_msg(context, username)
16        else:
17            print(No groups found)

群里发送消息主要麻烦在群名及相关信息的查找,要准确的了解get_chatrooms()和search_chatrooms()返回值

最后:

其实还可以做得更好玩,导入time模块可以做成定时发送消息装置。我今天也尝试了做成刷屏模式,但是在使用while死循环发送群消息时,就没办法有进程来处理处于阻塞状态的“自动回复”了。我的解决办法是导入OS模块简历fork()建立多进程,有兴趣的可以试试。

我将源码放到GitHub上面了,有兴趣的可以查看

经验分享 程序员 微信小程序 职场和发展