欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

我的第一个微信好友分析

发布时间:2024/9/30 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 我的第一个微信好友分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、使用到的库

① wxpy:初始化微信机器人

② openpyxl:保存微信好友数据为Excel表格

③ pyecharts:生成可视化的地图

④ wordcloud、matplotlib、jieba:生成词云图

二、开始分析

1、首先登录自己的微信

from wxpy import Bot #初始化机器人,选择缓存模式(扫码)登录 bot = Bot(cache_path=True) #获取我的所有微信好友信息 friend_all = bot.friends()

运行登录代码会自动弹出一个二维码页面,打开如下图 1, 用手机扫码同意后,进入微信并获取微信好友的相关信息。

print(friend_all[0].raw)#获取自己的全部信息 print(len(friend_all))#输出自己的微信好友人数

为了获取好友信息中需要的部分,我们对信息需要进行处理。从上面的获取信息全字段来看,我们获取的每位好友的信息都是一个字典,字典里只有’City’、‘Province’、‘Signature’、
‘NickName’、‘HeadImgUrl’、'Sex’是我们需要的。下面我们就对这几个 key 进行提取。

lis=[] #创建一个空列表 for a_friend in friend_all:NickName = a_friend.raw.get('NickName',None)#Sex = a_friend.raw.get('Sex',None)Sex ={1:"男",2:"女",0:"其它"}.get(a_friend.raw.get('Sex',None),None)City = a_friend.raw.get('City',None)Province = a_friend.raw.get('Province',None)Signature = a_friend.raw.get('Signature',None)HeadImgUrl = a_friend.raw.get('HeadImgUrl',None)HeadImgFlag = a_friend.raw.get('HeadImgFlag',None)list_0=[NickName,Sex,City,Province,Signature,HeadImgUrl,HeadImgFlag]lis.append(list_0)

将 lis 列表能够保存到 excel 中:

def lis2e07(filename,lis):infoTitle = ['NickName', 'Sex', 'Province', 'City']wb = openpyxl.Workbook()sheet = wb.activesheet.title = 'list2excel07'for _ in range(len(infoTitle)):sheet.cell(row=1, column=_+1, value=infoTitle[_])file_name = filename +'.xlsx'for i in range(len(lis)):for j in range(len(infoTitle)):sheet.cell(row=i+2, column=j+1, value=str(lis[i][j]))wb.save(file_name) lis2e07('C:\\Users\\DELL\\Desktop\\yubg2',lis)

运行结果:

对数据进行简单的分析:

Friends = bot.friends() data = Friends.stats_text(total=True, sex=True,top_provinces=30, top_cities=500) print(data)

结果:

将好友所在的城市用词云图显示:

import matplotlib.pyplot as plt plt.ion() df = read_excel('C:\\Users\\DELL\\Desktop\\yubg2.xlsx',sheet_name='list2excel07') word_list= df['City'].fillna('0').tolist()#将 dataframe 的列转化为 list,其中的 nan 用“0”替换 new_text = ' '.join(word_list) wordcloud = WordCloud(font_path='simhei.ttf', background_color="black").generate(new_text) plt.imshow(wordcloud) plt.axis("off") plt.show()

结果如图

生成微信好友在广东省分布的城市图:

def creatcitymap():CityList=[]CityNum = []for i in range(FriNum):if lis[i][4] not in CityList:CityList.append(lis[i][4])CityNum.append(0)for i in range(FriNum):for j in range(len(CityList)):if lis[i][4] == CityList[j]:CityNum[j] += 1for i in range(len(CityList)):CityList[i] += '市'map=Map(width=1000, height=1000)map.add("", CityList, CityNum, maptype="广东", is_visualmap=True, visual_text_color='#000')map.render('C:\\Users\\DELL\\Desktop\\citymap.html')

结果如图:

总结

以上是生活随笔为你收集整理的我的第一个微信好友分析的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。