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

本教程的作用

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

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

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

第二部分:群聊助手

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

编写代码

# -*- coding: utf-8 -*-
# author:           inpurer(月小水长)
# pc_type           lenovo
# create_date:      2018/12/1
# file_name:        test.py
# description:      月小水长,热血未凉

import itchat
import requests
def get_response(msg):
    apiUrl = 'http://www.tuling123.com/openapi/api'   #改成你自己的图灵机器人的api
    data={
        '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.

本教程面向包括代码零基础在内的所有人员,鼓励大家多在自己的电脑上实践,在运行代码的过程遇到什么问题,欢迎评论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容