使用 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 实现文件的递归拷贝实现代码
Aug 02 Python
Python实现的选择排序算法示例
Nov 29 Python
python实现K最近邻算法
Jan 29 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Python并发之多进程的方法实例代码
Aug 15 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
python名片管理系统开发
Jun 18 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
详解Python 中的容器 collections
Aug 17 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
python图像处理 PIL Image操作实例
Apr 09 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
PHP验证码生成原理和实现
2016/01/24 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
Prototype Date对象 学习
2009/07/12 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
js计算精度问题小结
2013/04/22 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
JavaScript模块详解
2017/12/18 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
详解Vite的新体验
2021/02/22 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
django框架中间件原理与用法详解
2019/12/10 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
2014年班级工作总结
2014/11/14 职场文书
优秀团队申报材料
2014/12/26 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
高效课堂教学反思
2016/02/24 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle