快速实现基于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实现学生管理系统
Jan 11 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
Python批量生成幻影坦克图片实例代码
Jun 04 Python
Python Numpy计算各类距离的方法
Jul 05 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python生成器推导式用法简单示例
Oct 08 Python
Python实现图片添加文字
Nov 26 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
python 中[0]*2与0*2的区别说明
May 10 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
php循环输出数据库内容的代码
2008/05/24 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
React实现全选功能
2020/08/25 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
Python自定义一个异常类的方法
2019/06/27 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
PHP经典面试题
2016/09/03 面试题
数据库方面面试题
2012/04/22 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
教师培训学习心得体会
2016/01/21 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
使用feign服务调用添加Header参数
2021/06/23 Java/Android
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python
vue递归实现树形组件
2022/07/15 Vue.js