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上面了,有兴趣的可以查看
