使用 python 进行微信好友分析
1. 使用到的库
① wxpy:初始化微信机器人
② openpyxl:保存微信好友数据为Excel表格
③ pyecharts:生成可视化的地图
④ wordcloud、matplotlib、jieba:生成词云图
【特别提醒】:pyecharts 库用的是0.5.x版本,而在 pip 中安装的为1.x.x版本,因此需要自行到【官网】中下载。
2. 基本功能
① 分析微信好友数据
② 生成词云图
③ 生成地图展示
此处调用 Bot() 方法,需要扫码登陆微信网页版,后续操作才能进行。
from wxpy import Bot import pandas as pd #初始化机器人,选择缓存模式(扫码)登录 bot = Bot(cache_path=True) #获取我的所有微信好友信息 friend_all = bot.friends() lis=[] for a_friend in friend_all: NickName = a_friend.raw.get('NickName',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) list_0=[NickName,Sex,City,Province,Signature] lis.append(list_0) def toex(lis): text=pd.DataFrame(lis,columns=['微信名','性别','城市','省份','个性签名']) text.to_excel('wxl.xlsx',encoding='U0001f31a') print(1) toex(lis)
然后出现二维码
然后除了列出的还有 个性签名、头像等其他属性。
接下来是好友的各省分布
import pandas as pd from pyecharts import Map df=pd.read_excel('wxl.xlsx') pr_list = df['省份'].fillna('pr').tolist() count_pr = pd.value_counts(pr_list) attr =count_pr.index.tolist() value = count_pr.tolist() maap=Map("各省微信好友分布", width=1200, height=600) maap.add("", attr, value, maptype='china', is_visualmap=True,visual_text_color='#000', is_label_show = True) maap.show_config() maap.render(r'wxpr.html') print(1)
最后是好友的城市词云
import pandas as pd from pyecharts import WordCloud df=pd.read_excel('wx.xlsx') city_list = df['城市'].fillna('city').tolist() count_city = pd.value_counts(city_list) name = count_city.index.tolist() value = count_city.tolist() wordcloud=WordCloud(width=1300, height=620) wordcloud.add("", name, value, word_size_range=[20, 100]) wordcloud.show_config() wordcloud.render(r'wxcity.html') print(1)
完成了