使用 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中字典的合并值相加与异或对比
Jun 04 Python
Python做智能家居温湿度报警系统
Sep 25 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
Python中关于logging模块的学习笔记
Jun 03 Python
如何表示python中的相对路径
Jul 08 Python
超级实用的8个Python列表技巧
Aug 24 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
Elasticsearch 批量操作
Apr 19 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实现简单的MVC框架实例
2015/09/23 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
js类 from qq
2006/11/13 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
python下10个简单实例代码
2017/11/15 Python
Python分析学校四六级过关情况
2017/11/22 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python两种注释用法的示例
2020/10/09 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
个人简历自我评价
2014/02/02 职场文书
2014年三万活动总结
2014/04/26 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
装配出错检讨书
2014/09/23 职场文书
答谢酒会主持词
2015/07/02 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android