Python库学习 wxpy - 微信机器人
2019-01-20 本文已影响7人
Spareribs
本周考虑到实现一个微信机器人的功能,研究了一下 wxpy 这个库
参考文档
说明文档
Github链接
从零开始微信机器人(一):wxpy简介(登录、消息发送、注册回复)
从零开始微信机器人(二):使用图灵机器人和api.ai相关接口
从零开始微信机器人(三):表情机器人的制作
简单的demo
例子1:获取聊天群里面所有@我的消息,并回复信息
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from wxpy import *
bot = Bot(cache_path=True)
# 机器人账号自身
myself = bot.self
# 给机器人自己发送消息
bot.self.send('Hello World!')
@bot.register(Group, TEXT)
def print_group_msg(msg):
if msg.is_at:
print(msg)
print(msg.text, type(msg.text))
msg.reply(u"你的内容是:**{0}**\n这是排骨的测试~~~".format(msg.text))
embed() # 阻塞进程
例子2:获取群成员,主要是Member这个类的分析
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from wxpy import *
bot = Bot(cache_path=True)
# 机器人账号自身
myself = bot.self
# 给机器人自己发送消息
bot.self.send(u'Hello World!')
group_fzr = bot.groups().search(u'***')[0]
group_zj = bot.groups().search(u'***')[0]
group_zzj = bot.groups().search(u'***')[0]
print(group_fzr, group_zj, group_zzj)
members_list = []
for fzr in group_fzr.members:
members_list.append(fzr)
# print fzr.is_friend, fzr.name, fzr.nick_name
for zj in group_zj.members:
members_list.append(zj)
# print zj.is_friend, zj.name, zj.nick_name
for zzj in group_zzj.members:
members_list.append(zzj)
# print zzj.is_friend, zzj.name, zzj.nick_name
print(len(members_list))
members_set = set(members_list)
print(len(members_set))
for mem in members_set:
# print mem.is_friend, mem.name, mem.nick_name
print mem.name
- groups() 获取所有群组信息
- search() 根据结果搜索
- members() 获取到每个群人员的信息
- is_friend 是否为好友
- name 群昵称
- nick_name 微信名
- display_name
待分析的问题
- 群备注、用户备注群昵称、好友备注