用 Python 玩微信,机器人陪你唠嗑

本文来自读者投稿第 3 篇

wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展,wxpy 库可能是最优雅的微信个人号 API。

今天只用到 wxpy 库其中的一个小功能:陪人聊天。

安装

wxpy 库支持 Python 3.4-3.6 版本和 2.7 版本。如果你的电脑只安装了一个 Python 版本,直接用下面命令安装:

如果你电脑同时装了 2.7 和 3.x 版本,将上方命令中的 “pip” 替换为 pip3 或 pip2,可确保安装到对应的 Python 版本中。

或者可以从 PYPI 官方源下载安装 (在国内可能比较慢或不稳定):

也可以从豆瓣 PYPI 镜像源下载安装 (推荐国内用户选用):

我用的 Python 版本是 3.6,代码编辑工具是 Pycharm。

安装完成后在代码编辑工具 Pycharm 中导入 wxpy 库。

登陆微信

直接调用 wxpy 库里的 Bot() 方法就会弹窗微信二维码,扫描即可登录微信。

登录后就可以对微信进行相关操作了。

创建图灵机器人

登录后创建机器人,填写应用终端、应用行业、应用场景。

创建成功后就能得到 apikey。

接口请求 API

将刚注册获取的 apikey 和用户输入的信息 info 作为 post 请求的参 data。直接用 request.post 请求图灵机器人 api 地址,加上刚才的 data。这样就完成了对图灵机器人接口的请求。

用 requests.post 处理后的返回的数据是 json 格式,比如我输入的 info 参数是「大家好」,返回的 json 语句是:

当然,这个参数对应的回复不止一条,这是随机回复的其中一条,也有可能回复:

我们现在需要把 json 语句的值提取出来,使用 json.loads(r)['text'] 方法提取出 text 值。

创建话痨机器人

wxpy 提供了注册消息的方法,可以简单将各种类型的消息注册并自定义处理方式。注册消息使用简单的 @bot.register() 方法。

定义一个回复朋友消息的函数,并将回复的 message 这个字符串使用 format() 方法格式化后作为上面 talk_robot() 函数的入参,返回机器人回复的消息。

当然仅仅写以上内容,会导致你的程序主程序运行结束自然退出。wxpy 给出了embed() 方法,在程序末尾(或其他你想要暂停调试的地方)加上 embed() 方法就可以让程序保持运行,同时进入Python命令行。

这样,我的小号就化身成为话痨微信机器人,我们在群里不管说什么,他都会搭话。

创建微智能机器人

如果技术群里人多的在讨论问题的话,这个话痨就会显得不是太智能,这时我们可以加个判断条件对 TA 进行优化下,只有 @TA 时,TA 才会搭话。

来看下这个微智能的机器人。

这样,简单的两款微信机器人就完成了,跃跃欲试的小伙伴赶紧试试吧。请记住用自己的小号来登录做成机器人,如果用自己常用的微信做成话痨机器人的话,你的各微信群会爆炸的,不明所以的吃瓜群众还以为你的微信中病毒了呢。

用小号做话痨机器人的话也要注意把小号关注的公众号取消关注,因为一旦公众号有推文过来,你的话痨机器人就会搭话,而一般的公众号都会设置关键词回复和收到消息回复的功能,所以他们会一直聊下去,但是这个免费的 api 接口每天的请求次数是有限制的,每天免费 5000 次请求。如果超过这个次数限制的话,TA 就只会说一句话:亲爱的,当天请求次数已用完。当然,土豪请忽略我上面说的这句话。

如果群人数比较多,很活跃的话,可以用其他手机号再注册图灵获取一个 apikey。

源码很简单,可以自己敲下,如需参考我的源码,公众号回复「wxpy」获取源码。

优化

以上创建的机器人只能识别中文和个别的英文,不识别表情、图片、语音、视频,这个后期会逐步优化的。

今天讲的只是 wxpy 库冰山一角的功能,还有很多有意思的功能:

发送文本、图片、视频、文件;

通过关键词或用户属性搜索 好友、群聊、群成员等;

获取好友/群成员的昵称、备注、性别、地区等信息;

加好友,建群,邀请入群,移出群等等;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730A09I2500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券