效果:
itchat
首先要安装这个库。相关教程可以参考这个百度经验。
/article/ca41422f9a06ff5eaf99ed36.html
前提
电脑要安装python。
微信群必须保存到通讯录!!
打开IDLE,并新建文件。
代码
import itchat, timefrom itchat.content import TEXT#name = ' 'roomslist = []male=0female=0other=0len=0itchat.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 roomslistfor 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=nfor 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 += 1elif sex == 2:female += 1else:other += 1breaklen=male+female+otherprint(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, timefrom itchat.content import TEXT#name = ' 'roomslist = []male=0female=0other=0len=0itchat.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 roomslistfor 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=nfor 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 += 1elif sex == 2:female += 1else:other += 1breakf.close()len=male+female+otherprint(name)print("男性人数:",male,"占比%.4f %%:"% (male / len * 100))print("女性人数:",female,"占比%.4f %%:"% (female / len * 100))print("未注明性别人数:",other,"占比%.4f %%:"% (other / len * 100))
性格索引是Sex,1代表男,2代表女。其他代表未写性格。
点个赞再走呗。点赞关注收藏三连更好啦!