不加群提取群成员_使用itchat分析指定微信群男女比例等成员数据

效果:

50f8efe62964dbaec87d88e883eb207a.png

itchat

首先要安装这个库。相关教程可以参考这个百度经验。

https://jingyan.baidu.com/article/ca41422f9a06ff5eaf99ed36.html​jingyan.baidu.com

前提

电脑要安装python。

微信群必须保存到通讯录!!

打开IDLE,并新建文件。

代码

import itchat, time
from itchat.content import TEXT
#name = ' '
roomslist = []
male=0
female=0
other=0
len=0
 
itchat.auto_login(enableCmdQR = False)


def getroom_message(n):
  #获取群的username,对群成员进行分析需要用到
  itchat.dump_login_status() # 显示所有的群聊信息,默认是返回保存到通讯录中的群聊
  RoomList = itchat.search_chatrooms(name=n)
  if RoomList is None:
    print("%s group is not found!" % (name))
  else:
    return RoomList[0]['UserName']
 
def getchatrooms():
  #获取群聊列表
  roomslist = itchat.get_chatrooms()
  return roomslist
 
for i in getchatrooms():
  #print(i['NickName'])
  roomslist.append(i['NickName'])
  #print(i)
  #print("n")
  
name=""
 
for n in roomslist:
    if(n=="吃喝玩乐脱单吐槽大会"):#填你想要分析的群名字
        ChatRoom = itchat.update_chatroom(getroom_message(n), detailedMember=True)
        name=n
        for i in ChatRoom['MemberList']:
          #print(i)
          print (i['Province']+":",i['NickName']+":",i['Sex'],":",i['City']+":",i['DisplayName']+":",i["Signature"])
          sex = i["Sex"]
          if sex == 1:
            male += 1
          elif sex == 2:
            female += 1
          else:
            other += 1
        break
    
len=male+female+other
print(name)
print("男性人数:",male,"占比%.4f %%:"% (male / len * 100))
print("女性人数:",female,"占比%.4f %%:"% (female / len * 100))
print("未注明性别人数:",other,"占比%.4f %%:"% (other / len * 100))

保存文件后。双击该文件就可以自动运行。但是出现错误会自动退出。

建议快捷键win+r,输入cmd,然后确定打开黑乎乎的控制台。然后把程序文件拖进去。点击enter运行。

如果想获取更多数据,

for i in ChatRoom['MemberList']:
   print(i)
   #print (i['Province']+":",i['NickName']+":",i['Sex'],":",i['City']+":",i['DisplayName']+":",i["Signature"])

可以把这个循环改成如上,打印成员所有数据,在重新提取。

你也可以把这个写到txt文件中。

import itchat, time
from itchat.content import TEXT
#name = ' '
roomslist = []
male=0
female=0
other=0
len=0
 
itchat.auto_login(enableCmdQR = False)


def getroom_message(n):
  #获取群的username,对群成员进行分析需要用到
  itchat.dump_login_status() # 显示所有的群聊信息,默认是返回保存到通讯录中的群聊
  RoomList = itchat.search_chatrooms(name=n)
  if RoomList is None:
    print("%s group is not found!" % (name))
  else:
    return RoomList[0]['UserName']
 
def getchatrooms():
  #获取群聊列表
  roomslist = itchat.get_chatrooms()
  return roomslist
 
for i in getchatrooms():
  #print(i['NickName'])
  roomslist.append(i['NickName'])
  #print(i)
  #print("n")
  
name=""

with open('群用户名.txt', 'a', encoding='utf-8')as f:
  for n in roomslist:
    if(n=="吃喝玩乐脱单吐槽大会"):#填你想要分析的群名字
        ChatRoom = itchat.update_chatroom(getroom_message(n), detailedMember=True)
        name=n
        for i in ChatRoom['MemberList']:
          #print(i)
          print ('正在写入      '+i['Province']+":",i['NickName']+":",i['Sex'],":",i['City']+":",i['DisplayName']+":",i["Signature"])
          f.write(i['Province']+":",i['NickName']+":",i['Sex'],":",i['City']+":",i['DisplayName']+":",i["Signature"]+'n')
          sex = i["Sex"]
          if sex == 1:
            male += 1
          elif sex == 2:
            female += 1
          else:
            other += 1
        break
    
f.close()
len=male+female+other
print(name)
print("男性人数:",male,"占比%.4f %%:"% (male / len * 100))
print("女性人数:",female,"占比%.4f %%:"% (female / len * 100))
print("未注明性别人数:",other,"占比%.4f %%:"% (other / len * 100))

性格索引是Sex,1代表男,2代表女。其他代表未写性格。

点个赞再走呗。点赞关注收藏三连更好啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值