基于Python的微信聊天机器人

基于Python的微信聊天机器人

  具体原理:将好友消息转发给图灵机器人,获得图灵机器人的回复后,将消息转发给原好友,也就是说,我们将搭建从图灵机器人到友的沟通桥梁。具体步骤如下:

  • 搭建python开发环境,建议使用pycharm软件;
  • pip安装wxpy,requests,itchat包,使用wxpy包可以简化开发步骤具体参看开发文档;

环境搭建

window环境搭建教程以及安装包链接链接:https://pan.baidu.com/s/1hrHXuRU 密码:pg4t

注册灵图机器人

灵图机器人注册链接:http://www.tuling123.com/help/help_center.jhtml?nav=doc

安装依赖包

[plain]  view plain  copy
  1. #pip install XXX 为python安装命令  
  2. pip install wxpy requests itchat  

代码实现:

基于wxpy代码实现:

[python]  view plain  copy
  1. #!/usr/bin/env python  
  2. # -*- coding:utf-8 -*-  
  3. #time: 2017/08/15 20:53:19  
  4. #version 1.0  
  5. #__author__:lanlong  
  6. #参看网址http://wxpy.readthedocs.io/zh/latest/index.html  
  7. import requests  
  8. from wxpy import *  
  9. import json  
  10. import random  
  11. robot = Bot()#定义robot对象  
  12. #图灵机器人获取回复消息  
  13. def talks_robot(info = 'hello worle'):  
  14.    api_url = 'http://www.tuling123.com/openapi/api'   #图灵机器人api街口  
  15.    apikey = '图灵api密钥'         #图灵api密钥  
  16.    data = {'key': apikey,  
  17.                'info': info}  
  18.    req = requests.post(api_url, data=data).text #通过接收消息info,对数据在封装,向灵图机器人发出请求请求,并获得回复  
  19.    replys = json.loads(req)['text']            #loads方法是把json对象转化为python对象,dumps方法是把pyhon对象转化为json对象  
  20.    return replys                               #返回回复数据  
  21. @robot.register()#灵图机器人注册注册  
  22. def tuling_reply(msg):#回复来自其他好友、群聊和公众号的消息  
  23.    defaultReply = '我接受: ' + msg.text    #为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复  
  24.    robots = ['——By机器人李''——By反正不是本人','我是灵图的机器人']#防止误解追加解释,可以去掉  
  25.    message = '{}'.format(msg.text)#格式转换,转换为字符串  
  26.    replys = talks_robot(info=message)+random.choice(robots)  
  27.    return replys or defaultReply  
  28. if __name__ == '__main__':  
  29.    robot.start()    #开始监听和自动处理消息  
  30.    embed()     #进入 Python 命令行、让程序保持运行  

基于itchat代码实现:

[python]  view plain  copy
  1. #!/usr/bin/env python  
  2. # -*- coding:utf-8 -*-  
  3. #time: 2017/08/15 20:53:19  
  4. #version 1.0  
  5. #__author__:lanlong  
  6. import requests  
  7. import itchat  
  8. # 向api发送请求  
  9. def get_response(msg):  
  10.   apiUrl = 'http://www.tuling123.com/openapi/api'  
  11.   apikey = '图灵api密钥'  #图灵api密钥  
  12.   data = {  
  13.     'key'  : apikey,  
  14.     'info'  : msg,  
  15.     'userid' : 'pth-robot',  
  16.   }  
  17.   try:  
  18.     r = requests.post(apiUrl, data=data).json()  
  19.     return r.get('text')  
  20.   except:  
  21.     return  
  22. # 注册方法  
  23. @itchat.msg_register(itchat.content.TEXT)  
  24. def tuling_reply(msg):  
  25.   # 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复  
  26.   defaultReply = 'I received: ' + msg['Text']  
  27.   # 如果图灵Key出现问题,那么reply将会是None  
  28.   reply = get_response(msg['Text'])  
  29.   # a or b的意思是,如果a有内容,那么返回a,否则返回b  
  30.   return reply or defaultReply  
  31. # 为了让修改程序不用多次扫码,使用热启动  
  32. itchat.auto_login(hotReload=True)  
  33. itchat.run()  

测试结果显示:


  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值