您的位置:首页 > 编程语言 > Python开发

python-itchat微信消息群发、自动回复

2018-02-16 13:15 951 查看
很久没有写博客了,除夕夜,除了年夜饭之外感觉没意思,微信拜年消息很多,大多数都是群发消息,为了不去人肉回复,怀着对技术一致的好奇和探索态度,看到了itchat python的第三方api能做这个事,就拿起电脑,研究了一下,网上也有很多的的资料,本博客也是学习别人,应用于自己,感谢各位技术牛人不吝惜的分享,才能使得技术离我们都很近。
    记录一下。首先安装环境,很快,如果电脑上已经有了python的程序,以管理员身份运行cmd(c:\windows\system32\ 右键cmd ,管理员身份运行即可),然后输入  pip install itchat   等待安装!

   然后打开编辑器(记事本、vscode等等只要能写代码即可),先上两个效果图,一个是给所有朋友群发消息的,一个是自动回复的;



1.自动回复:代码如下import time
import itchat
from itchat.content import *

@itchat.msg_register(itchat.content.TEXT)
def print_content(msg):
myUserName = itchat.get_friends(update=True)[0]["UserName"]##获取自己的username
print('myUserName=',myUserName)
print('FromUserName=',msg['FromUserName'])##获取发消息的好友的username
remark_name=msg['User']['RemarkName']###备注名称
time.sleep(3)
if not msg['FromUserName'] == myUserName:###如果不是自己发的
username=msg['User']['NickName']
remarkname=msg['User']['RemarkName']
defaultReply = '新年快乐!祝 ' + remarkname + ' 在新的一年里身体健康,每天有个好心情!';
print('msg=',msg)
print('username=',msg['User']['NickName'])
itchat.send_msg(defaultReply,msg['FromUserName'])

itchat.auto_login(True)###登录,扫码,相当于登录微信网页版
itchat.run()###loop,监听收到消息事件itchat 将根据接受到的消息类型寻找对应的已注册的方法,代码中@itchat.msg_register(itchat.content.TEXT) 相当于注册,即微信收到任何人发的文本消息,就调用函数,这里注册的时候msg_register 函数可以增加参数表示好友之间isFriendChat、isGroupChat表示群聊,isMapChat表示公众号,根据需要确定;图中我打印出了接受到的消息详情,可以看到json的数据接结构,有很多字段(备注名、微信名等等),大家可以灵活的根据字段去进行灵活多变的处理,比发给特定人,自动回复特定人等等;
2.群发消息import time
import itchat
from itchat.content import *

itchat.auto_login(True)
WANT_TO_SAY = u'祝%s狗年旺旺,身体健康!!'

friendList = itchat.get_friends(update=True)[1:]###获取好友列表
i=0
for friend in friendList:
i+=1
print('第%d个 '%(i),WANT_TO_SAY % (friend['DisplayName'] or friend['NickName']))
#itchat.send(WANT_TO_SAY % (friend['DisplayName']or friend['NickName']))
time.sleep(.3)效果



登录后,获取好友列表,遍历并发送消息内容,很快,很简单,当然如果只是测试,print,即可,真的发送,就调用itchat.send
花了半个小时研究出来这点东西,python真的是方便,具体的原理等待后续研究,这只是简单的应用;加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息