快速实现基于Python的微信聊天机器人示例代码


Posted in Python onMarch 03, 2017

最近听说一个很好玩的图灵机器人api,正好可以用它做一个微信聊天机器人,下面是实现

# test.py

import requests
import itchat #这是一个用于微信回复的库

KEY = '8edce3ce905a4c1dbb965e6b35c3834d' #这个key可以直接拿来用

# 向api发送请求
def get_response(msg):
  apiUrl = 'http://www.tuling123.com/openapi/api'
  data = {
    'key'  : KEY,
    'info'  : msg,
    'userid' : 'pth-robot',
  }
  try:
    r = requests.post(apiUrl, data=data).json()
    return r.get('text')
  except:
    return

# 注册方法
\@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
  # 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
  defaultReply = 'I received: ' + msg['Text']
  # 如果图灵Key出现问题,那么reply将会是None
  reply = get_response(msg['Text'])
  # a or b的意思是,如果a有内容,那么返回a,否则返回b
  return reply or defaultReply

# 为了让修改程序不用多次扫码,使用热启动
itchat.auto_login(hotReload=True)
itchat.run()

如果要让这个机器人永远运行,就需要上传到服务器,用screen指令新开一个窗口,运行python3 test.py,这时候就会在同一个目录下生成一个QR.jpg文件,但是因为一般我们是用ssh连接服务器,没有图像,所以需要用scp指令,下载到本地之后,用手机扫码,这样工作就完成了

效果如下:

快速实现基于Python的微信聊天机器人示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python对list列表结构中的值进行去重的方法总结
May 07 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
python os.fork() 循环输出方法
Aug 08 Python
Python使用type动态创建类操作示例
Feb 29 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
Python txt文件如何转换成字典
Nov 03 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
Python实现在线音乐播放器
Mar 03 #Python
python开发简易版在线音乐播放器
Mar 03 #Python
详解python中requirements.txt的一切
Mar 03 #Python
python中异常捕获方法详解
Mar 03 #Python
python利用不到一百行代码实现一个小siri
Mar 02 #Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 #Python
Python正则表达式教程之二:捕获篇
Mar 02 #Python
You might like
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
jQuery事件详解
2017/02/23 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
Python实现将文本生成二维码的方法示例
2017/07/18 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
星空联盟C# .net笔试题
2014/12/05 面试题
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
护林防火标语
2014/06/27 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang