美文网首页程序员我爱编程
python实现微信自动回复和群聊助手

python实现微信自动回复和群聊助手

作者: 月小水长 | 来源:发表于2018-11-30 20:50 被阅读23次

    本教程的作用

    零基础手把手教你打造一款微信机器人,包括好友聊天自动回复和群聊助手两个部分,零基础!话不多说,下面开始实战编码。

    第一部分:好友聊天自动回复

    第一步,安装python环境。

    打开python官网https://www.python.org/downloads/,下载与你的电脑系统相匹配的python发行版本,推荐python3.5-python3.6,版本太高了可能有许多未知的bug,太低了兼容性不太好。

    第二步,安装itchat库

    在命令行下输入pip install itchat完成安装

    第三步,编写代码

    核心代码如下:

    #coding=utf8
    import itchat
    
    # 当接收到的消息是Text,即文字消息
    #注册re_msg的意义在于,告诉itchat每次有符合特定条件的消息,itchat要把消息作为参数,去调用re_msg。
    @itchat.msg_register('Text')
    def text_reply(msg):
        #message:取出msg里面的文本消息
        message = msg['Text']
        # 回复给好友
        replay = u'肖涛已在电脑上登陆网页微信,但暂时无法进行交流,可以给他发送电脑QQ消息哈'  
        #主要是一些关键词设置
        # if B in A 如果 A中有B的话
        if u'干什么' in message:
            replay = u'在忙呢'
        elif u'逼' in message:
            replay = u'含有敏感词汇,请注意言辞'
        elif u'生气' in message:
            replay = u'生气对身体不好'
        elif u'?' in  message:
            replay = u'哈哈,我也不知道'
        elif u'不理你' in message:
            replay = u'乖,忙完给你买糖吃'
        elif u'涛' in message:
            replay = u'他是我主人'
        elif u'厉害' in message:
            replay = u'不不不,辣鸡一个'
        elif u'你好' in message:
            replay = u'你好哇'
        elif u'好吧' in message:
            replay = u'再见'
        return replay
    #弹出扫码登录界面,参数这样设置的好处是短时间内退出程序,再次登录可以不用扫码
    itchat.auto_login(hotReload=True)
    #开启自动回复
    itchat.run()
    

    以上代码都是本人亲自编写,如需转载请私信我。
    代码截至2018/11/30本人调试有效,最新的代码更新在我的github:auto_replay.py如有问题欢迎评论。

    运行代码

    运行之后,会弹出一个二维码,用微信扫一扫登录网页版微信之后,这份代码就会接管你的消息通知。下面是一个简单的效果图


    20180331100337372.png

    第二部分:群聊助手

    第一步是点对点的消息自动回复,本部分实现的是点对多、在群中的消息自动回复。请确认上一部分实现无误之后再来尝试第二部分,因为第二部分需要第一部分的环境配置做支撑。

    编写代码

    import itchat
    import requests
    def get_response(msg):
        apiUrl = 'http://www.tuling123.com/openapi/api'   #改成你自己的图灵机器人的api
            'key': 'ce697b3fc8b54d5f88c2fa59772cb2cf',  # Tuling Key 
            'info': msg,  # 这是我们发出去的消息
            'userid': 'wechat-robot',  # 这里可随意修改
        }
        # 通过如下命令发送一个post请求
        r = requests.post(apiUrl, data=data).json()
        return r.get('text')
    @itchat.msg_register(itchat.content.TEXT)
    #用于接收来自朋友间的对话消息  #如果不用这个,朋友发的消息便不会自动回复 
    def print_content(msg):
        return get_response(msg['Text'])
    #用于接收群里面的对话消息
    @itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
    def print_content(msg):
        return get_response(msg['Text'])
    itchat.auto_login(True)
    itchat.run()
    

    接入图灵机器人

    打卡图灵机器人官网,http://www.tuling123.com/,注册账号,新建一个机器人,如下图

    20180718175512463.png
    把图中的apikey替换到代码里就行,如果你要用我的,我也无法拒绝,毕竟我的apikey也贴出来了。

    运行效果

    和上一个效果图不同的是,这是在一个群里的消息

    简要原理

    一但接收到信息,就会调用get_response()方法,把消息传给图灵机器人,然后图灵机器人把回复信息再返回给微信。

    截至2018/11/30代码运行无误,最新更新在我的github:grouphandler.py
    如有问题请评论,如需转载请私信我。

    后记

    本篇文章参考了我的两篇csdn博客
    https://blog.csdn.net/ygdxt/article/details/79766197
    https://blog.csdn.net/ygdxt/article/details/81101020
    在这里推荐两个python代码仓库:
    一个是PythonLearning,这里面有我学习python的课程学习资料、以及一些我实战编写的代码,
    另一个是PythonSpider,这里面主要是一些我写的python实现的爬虫。
    更多的请访问我的github,欢迎star,fork.
    另外欢迎关注微信公众号:inspurer

    本教程面向包括代码零基础在内的所有人员,鼓励大家多在自己的电脑上实践,在运行代码的过程遇到什么问题,欢迎评论。
    如果你觉得本篇文章不错,不妨打赏一下,谢谢。

    相关文章

      网友评论

      本文标题:python实现微信自动回复和群聊助手

      本文链接:https://www.haomeiwen.com/subject/vmckcqtx.html