使用 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使用xmlrpc实例讲解
Dec 17 Python
python网络编程学习笔记(六):Web客户端访问
Jun 09 Python
Python过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Python Celery多队列配置代码实例
Nov 22 Python
python多线程使用方法实例详解
Dec 30 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP多文件上传类实例
2015/03/07 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
javascript计时器详解
2015/02/28 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
Python中format()格式输出全解
2019/04/12 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
J2EE模式面试题
2016/10/11 面试题
大学军训感言1500字
2014/03/09 职场文书
公务员个人考察材料
2014/12/23 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
网吧温馨提示
2015/07/17 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
Vue全局事件总线你了解吗
2022/02/24 Vue.js