使用 Python 实现微信群友统计器的思路详解


Posted in Python onSeptember 26, 2018

基于微信可以做很多有意思的练手项目,看了这张速查表你就会发现,可以做的事情超过你的想象。

使用 Python 实现微信群友统计器的思路详解

有一次我想要统计微信群里哪些同学在北京,但发现直接问是很难得到准确结果的……

使用 Python 实现微信群友统计器的思路详解

这时候不如运用 wxpy 这个库抓取所有群友的地区信息,很快就可以得到想要的结果,甚至还精确到了区。

使用 Python 实现微信群友统计器的思路详解

下面来分享一下这个微信群友统计器的实现思路,你可以基于它去拓展更多实用功能。

实现思路

解决复杂问题最好的办法就是把问题简单化,拆解成若干个小问题,然后逐个击破。问题的拆解思路如下:

使用 Python 实现微信群友统计器的思路详解

?1. 如何通过 wxpy 库找到指定微信群?

使用 bot.groups() 方法找出最近聊天的微信群

使用 Python 实现微信群友统计器的思路详解

使用 wxpy 提供的 bot.groups().search('群名')[0] 方法找到指定微信群

使用 Python 实现微信群友统计器的思路详解

?2. 如何获取到指定微信群的全部群成员?

对微信群对象使用 .members 获得微信群的全部群成员

使用 Python 实现微信群友统计器的思路详解
使用 Python 实现微信群友统计器的思路详解

?3. 如何获取到群成员的省份跟城市的信息?

对获取到的微信群的全部群成员,使用 for 循环一个一个的用 .province 和 .city 获取省份跟城市信息

使用 Python 实现微信群友统计器的思路详解
使用 Python 实现微信群友统计器的思路详解

然后进行统计,即可获得各地区的人数。

统计器源码

只需要修改倒数第5行,改成你要查询的微信群,然后就可以使用了。

from wxpy import *
bot = Bot()
def get_members(group_name):
  print(bot.groups().search(group_name)[0])
  group = bot.groups().search(group_name)[0]
  #使用此方法用来更新群聊成员的详细信息 (地区、性别、签名等)
  group.update_group(True)
  #获取该群聊组的全部成员对象
  members = group.members
  return members
def clean_members(members):
  #用来存放群聊里出现的全部的省份跟城市的信息
  member_clean = []
  for member in members:
    #.province跟.city分别获取群成员对象的省份跟城市
    member_info = member.province + member.city
    #可能有的成员没有设置自己的地区跟城市,获取到的member_info可能为空
    member_info_clean = member_info.replace(' ', '')
    if not member_info_clean == '':
      member_clean.append(member_info_clean)
  return member_clean

def result(member_clean):
  member_dict = {}
  for m in member_clean:
    #统计某个省份跟地区在member_clean列表里面的人数
    if member_clean.count(m):
      member_dict[m] = member_clean.count(m)
      #把member_clean列表里,向member_dict字典里添加过的省份地区删除掉
      member_clean = [value for value in member_clean if value != m]
  return member_dict
#改成想要统计的群聊名字,很久没有聊天记录的群最好先发条消息
group_n = '实用主义第三期入门训练营'
members = get_members(group_n)
member_clean = clean_members(members)
member_dict = result(member_clean)
print(member_dict)

总结

以上所述是小编给大家介绍的使用 Python 实现微信群友统计器的思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 3中print函数的使用方法总结
Aug 08 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
Python reduce()函数的用法小结
Nov 15 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
python ddt数据驱动最简实例代码
Feb 22 Python
python项目对接钉钉SDK的实现
Jul 15 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
python statsmodel的使用
Dec 21 Python
Python实现Hash算法
Mar 18 Python
APIStar:一个专为Python3设计的API框架
Sep 26 #Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 #Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 #Python
Linux下python3.6.1环境配置教程
Sep 26 #Python
简单谈谈python基本数据类型
Sep 26 #Python
浅析Python四种数据类型
Sep 26 #Python
详解将Django部署到Centos7全攻略
Sep 26 #Python
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
香妃
2021/03/03 冲泡冲煮
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python实现按中文排序的方法示例
2018/04/25 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python numpy数组转置与轴变换
2019/11/15 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
电钳专业个人求职信
2014/01/04 职场文书
爱心捐书活动总结
2014/07/05 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
财产保全担保书
2015/01/20 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
百年孤独读书笔记
2015/06/29 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
golang json数组拼接的实例
2021/04/28 Golang
goland设置颜色和字体的操作
2021/05/05 Golang
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
Oracle 死锁的检测查询及处理
2021/09/25 Oracle