使用 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静态方法实例
Jan 14 Python
用Python制作检测Linux运行信息的工具的教程
Apr 01 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
Python执行时间的计算方法小结
Mar 17 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
Python 查看文件的读写权限方法
Jan 23 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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
url decode problem 解决方法
2011/12/26 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
JS 常用校验函数
2009/03/26 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
大一自我鉴定范文
2013/10/04 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
初三学习决心书
2014/03/11 职场文书
2014年大学生工作总结
2014/11/20 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
django学习之ajax post传参的2种格式实例
2021/05/14 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技