前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Python 玩微信,机器人陪你唠嗑

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

作者头像
Python进阶者
发布2019-06-05 17:08:26
1.8K0
发布2019-06-05 17:08:26
举报

月出惊山鸟,时鸣春涧中。

之前给大家分享了怎么用 itchat 库制作微信朋友性别统计图,今天给大家介绍一个更强大的库:wxpy 库。

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

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

安装

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

代码语言:javascript
复制
pip install wxpy

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

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

代码语言:javascript
复制
pip install -U wxpy

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

代码语言:javascript
复制
pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

我用的 Python 版本是 3.6,代码编辑工具是 Pycharm。 安装完成后在代码编辑工具 Pycharm 中导入 wxpy 库。

登陆微信

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

代码语言:javascript
复制
# 导入模块
from wxpy import *
import requests
import json
# 初始化机器人,扫码登陆
bot = Bot()

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

创建图灵机器人

接下来需要在图灵机器人官网注册账号,点击下方阅读原文可进入官网。

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

创建成功后就能得到 apikey。

接口请求 API

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

代码语言:javascript
复制
robot = Bot()
def talk_robot(info='你好啊'):   #定义一个默认参数
    api_url = 'http://www.tuling123.com/openapi/api'  # 图灵接口url
    apikey = 'xxxxxxxxxx'       # 注册图灵生成key 
    data = {'key': apikey, 'info': info}                                   
    r = requests.post(api_url, data=data).text

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

代码语言:javascript
复制
{"code":100000,"text":"看来你心情还不错哦!"}

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

代码语言:javascript
复制
{"code":100000,"text":"你好,我就好。"}

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

代码语言:javascript
复制
response = json.loads(r)['text']
return response
创建话痨机器人

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

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

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

代码语言:javascript
复制
@robot.register()
def reply_my_friend(msg):
    message = '{}'.format(msg.text)
    response = talk_robot(info=message)
    return response
embed()

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

创建微智能机器人

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

代码语言:javascript
复制
@robot.register()
def print_group_msg(msg):
    if msg.is_at:
        message = '{}'.format(msg.text)
        response = talk_robot(info=message)
    return response
embed()

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

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

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

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

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

优化

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

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

  • 发送文本、图片、视频、文件;
  • 通过关键词或用户属性搜索 好友、群聊、群成员等;
  • 获取好友/群成员的昵称、备注、性别、地区等信息;
  • 加好友,建群,邀请入群,移出群等等;

这个小机器人我放在我的公众号后台和技术交流群里了,欢迎大家随时进群体验去撩 TA。以后我会逐步优化让 TA 功能变得更强大。同时我会在公众号分享出来,觉得这个项目有意思的不妨点个赞加个关注,让我们一起用 Python 玩微信,盘TA。

------------------- End -------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 登陆微信
  • 创建图灵机器人
  • 创建话痨机器人
  • 创建微智能机器人
  • 优化
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档