Py玩微信大法之群聊里找老乡

旧时光

多愁善感

最近几天真的是忙得不可开交啊,属于自己的时间少了很多。主要是因为有好多个实验堆一起来了,尤其育种学的实验,要求完成至少300多花的育种任务,这让我每天都要七点未到就要早起去菜地上做实验。一天过得挺累的,不过也算充实吧。
这里写图片描述

上次的推文获得了接近一百的量,比前几次的推文都要多,主要原因是开学之后加入了好几个程序员的那些群聊,这让我找到了一些愿意看这类文章的人。当然这量还是很少的,而且呢,观看的时间主要在前两天,过了之后就基本没人看了。在吸引力上还需要自己不断的探索啊。
在Youtube发现一个很不错的视频,里面讲述了贵州省发展大数据产业的情况,发展大数据给了这个本来全国最贫穷的省份以发展动力,一跃成为全国发展增速第二块的省份。我觉得啊,中国在精准扶贫方面,大数据是一个很好的工具,教会农民使用(当然啦,农民本身教育水平相对低下,让他们能够理解接受,这对扶贫干部来说是一个挺棘手的难题)让他们真正走出大山,接触外面的世界。科技扶贫,很有未来!真诚推荐:
https://www.youtube.com/watch?v=6RtALmU6rrE

相关参考

wxpy 文档:http://wxpy.readthedocs.io/zh/latest/

开始之前

要是我们有这么一个需求:在一个有着来自五湖四海的成员的群聊里,快速找出所有的老乡,怎么办呢,每个人的信息逐一打开来看吗?当然不是。大数据时代,开源时代,我们有强大的工具来解决这一问题。
今天我们用到的语言是Python,py大法好啊!py简洁的语法,强大的功能,给我留下了很深刻的印象。今天我就来展示下它一个强大之处,用简简单单的几句话,实现一个看似复杂的功能。
开始之前我们需要安装wxpy这个模块,进入命令行输入这个命令:

pip install wxpy

简单上手

安装完成之后我们就可以进入Python Console简单的玩一玩↓↓↓↓↓↓

# 导入模块
from wxpy import *
# 扫码登陆
bot = Bot()

扫码登陆之后,我们就能够来体验wxpy的强大了。↓↓↓↓↓↓

# 获取所有好友
bot.friends()

这里写图片描述

厉害吧!获取好友统计信息↓↓↓↓↓↓

print(bot.friends().stats_text())

这里写图片描述
通过这种方法,就能够轻松的知道了,你朋友列表里面好友的男女比例(你们最关心的吧)与地区分布情况,厉害吧!
这里写图片描述

具体操作

简单上手wxpy之后,我们就正式开始想办法找老乡了。
通过使用bot.groups() 获取账号中最近活跃的群列表
这里写图片描述

需要注意的是,这个方法只能获取最近的一些活跃群聊。如果你在列表中找不到群聊,你可以取消群的免打扰 然后去群上冒冒泡取消群的免打扰 然后去群上冒冒泡取消群的免打扰 然后去群上冒冒泡,就可以了!

好,我们就选择第三个群,里面有许许多多来自全国各地的程序员:

 gs = bot.groups()
 g = gs[2]

通过调用g.members 来获取群你所有的成员
这里写图片描述

g.members 返回一个可迭代的对象,对象同样含有前文说过的stats_text() 方法获取成员信息统计情况↓↓↓↓↓↓
这里写图片描述

咦,问题出现了。为了解决这个问题,根据文档,我们需要调用g.update_group(True)来解决
这里写图片描述

程序员队伍里的女生实在是太少了(;へ:)

通过上述的方法,我们能够轻松的获取到群的成员分布统计情况。我们也可以调用g.members.stats() 来获取具体所有的信息。
那么我们怎么获取具体以为成员的信息呢↓↓↓↓↓↓

# 以下这步是必须的
g.update_group(True)
# 获取具体的以为群成员(i)
gm = g.members[i]
# 获取成员的在本群中的昵称
gm.name
# 获取成员的城市
gm.city
# 获取成员的省份
gm.province
# 获取成员的性别(1:男 2:女 0:未设置)
gm.sex

好了,有了上述的方法,我们就能够设计一个小程序来找出我们的老乡了。

def find_townsmans(city_name):
    townsmans = []
    for each_member in g.members:
        if each_member.city == city_name:
            townsmans.append(each_member)
    return townsmans

当然,利用Python的语法糖,我们也能这样写来精简。。。

def find_townsmans(city_name):
    return [each_member for each_member in g.members if each_member.city == city_name]

这里写图片描述

通过上述方法,我们就能够轻松找出我们群里的老乡了。利用这个插件,我们也能找出相同省份的,性别的。

最后

我的GitHub账号:https://github.com/Mr-YYM
微信公众号,欢迎扫码关注
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值