效果:

itchat
首先要安装这个库。相关教程可以参考这个百度经验。
https://jingyan.baidu.com/article/ca41422f9a06ff5eaf99ed36.htmljingyan.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代表女。其他代表未写性格。
点个赞再走呗。点赞关注收藏三连更好啦!