使用 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搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
简单了解Django模板的使用
Dec 20 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python的多维空数组赋值方法
Apr 13 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
Numpy中的mask的使用
Jul 21 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
Django实现基于类的分页功能
Oct 31 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
win10安装python3.6的常见问题
Jul 01 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
杏林同学录(六)
2006/10/09 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
javascript截取字符串小结
2015/04/28 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Python中的变量和作用域详解
2016/07/13 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
一些高难度的SQL面试题
2016/11/29 面试题
2014元旦晚会策划方案
2014/02/19 职场文书
护理中职生求职信范文
2014/02/24 职场文书
行政求职信
2014/07/04 职场文书
装配出错检讨书
2014/09/23 职场文书
工人先进事迹材料
2014/12/26 职场文书
2015年采购工作总结
2015/04/10 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书