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

微信公众号:inspurer 关注可了解更多。问题或建议,请公众号留言; 如果你觉得本文对你有帮助,欢迎赞赏[1]

本文已转载我的简书:https://www.jianshu.com/p/4b7b4f4fb0e4

本教程的作用

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

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

第一步,安装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

如果你觉得本篇文章不错,不妨打赏一下,谢谢

本文分享自微信公众号 - 月小水长(inspurer)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DotNet Core圈圈

asp.net core 源码分析之Session

因为Session的服务端存储需要缓存,所以需要引入.Net core的缓存DistributedMemoryCache;

14110
来自专栏java思维导图

如何同步多个 git 远程仓库

以前源码是托管在 github 的, 现在想要同步托管在 gitee, 一做备份分发, 二方便国内下载使用(网速可观), 三防特色墙...

19610
来自专栏CDA数据分析师

万万没想到,Python 竟能绘制出如此酷炫的三维图

通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的:

19220
来自专栏AI科技大本营的专栏

中文repo“霸榜”GitHub Trending,国外开发者不开心了

近日,一位叫Balazs Saros 的国外开发者在Medium上发表了一篇名为"Chinese repos are ruining the Github tr...

9530
来自专栏DotNet Core圈圈

使用Jenkins部署.Net Core遇到的几个坑

  这里最应该注意的是操作系统版本和Jenkins的版本,不同的版本,特别是操作系统操作的shell可能千差万别,你会在网上看到各种命令,所以选择好自己的环境。

23540
来自专栏信息安全小学生

学习 Phaser.js HTML5游戏开发-DAY1

Github: https://github.com/photonstorm/phaser

16520
来自专栏图南科技

php-ext-excel-export扩展使用札记

PHP环境下的导出功能优化改造,单次同步导出数据量在2万之上。原有导出功能使用的PHP5.6+PHPExcel.这一次换成了PHP7.2+php-ext-exc...

17420
来自专栏git

Git 命令

7330
来自专栏格姗知识圈

10个Github开源免费且优秀的后台控制面板,你值得收藏

Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费...

12120
来自专栏git

react-04

github: https://github.com/callemall/material-ui

9520

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励