第一个微信小项目

使用 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)

完成了

原文地址:https://www.cnblogs.com/czd1/p/10980171.html