快速实现基于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创建日历实例
Aug 21 Python
Python中__call__用法实例
Aug 29 Python
Python中的__SLOTS__属性使用示例
Feb 18 Python
Python itertools模块详解
May 09 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python GUI布局尺寸适配方法
Oct 11 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
在python中求分布函数相关的包实例
Apr 15 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
方法汇总:Python 安装第三方库常用
Apr 26 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中防止SQL注入实现代码
2011/02/19 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
列表内容的选择
2006/06/30 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python yield 使用方法浅析
2017/05/20 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
如何强制垃圾回收
2015/10/06 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书