Python库学习 wxpy - 微信机器人

本周考虑到实现一个微信机器人的功能,研究了一下 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

待分析的问题

  • 群备注、用户备注群昵称、好友备注

例子3:群组成员信息 members_details=True 需要更新

from wxpy import *

bot = Bot(cache_path=True)

# 机器人账号自身
myself = bot.self

group_sjw = bot.groups().search(u'数据蛙互助学习社区')[0]
print(group_sjw)

group_sjw.update_group(members_details=True)
members_list = []
for mb in group_sjw.members:
    members_list.append(mb)

print(len(members_list))
sex_dict = {
    'male': 0,
    'female': 0,
    'none_type': 0
}
for mem in members_list:
    if mem.sex == 1:
        sex_dict['male'] += 1
    elif mem.sex == 2:
        sex_dict['female'] += 1
    else:
        sex_dict['none_type'] += 1

print(sex_dict)

猜你喜欢

转载自blog.csdn.net/weixin_33767813/article/details/87133362