快速实现基于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 相关文章推荐
在Docker上开始部署Python应用的教程
Apr 17 Python
深入解读Python解析XML的几种方式
Feb 16 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
python统计文章中单词出现次数实例
Feb 27 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
解决python3安装pandas出错的问题
May 20 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设计模式之结构模式的深入解析
2013/06/13 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python常见数据类型转换操作示例
2019/05/08 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
学校感恩教育活动总结
2014/07/07 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
学校重阳节活动总结
2015/03/24 职场文书
法律意见书范文
2015/06/04 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers