使用 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字符串对象的实现
Dec 24 Python
Python语言生成水仙花数代码示例
Dec 18 Python
对python的输出和输出格式详解
Dec 08 Python
详解python之heapq模块及排序操作
Apr 04 Python
python机器人运动范围问题的解答
Apr 29 Python
在django模板中实现超链接配置
Aug 21 Python
Python 函数list&read&seek详解
Aug 28 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
Python用Jira库来操作Jira
Dec 28 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 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
Terran兵种介绍
2020/03/14 星际争霸
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
PHP防止跨域提交表单
2013/11/01 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
2017/04/13 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
jupyter notebook清除输出方式
2020/04/10 Python
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
鼓励运动员的广播稿
2014/02/08 职场文书
马智宇结婚主持词
2014/04/01 职场文书
音乐教师求职信范文
2015/03/20 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL