楼主: CDA网校
943 0

[程序分享] Python利用itchat对微信中好友数据实现简单分析的方法——CDA人工智能学院 [推广有奖]

管理员

大师

67%

还不是VIP/贵宾

-

威望
3
论坛币
39868 个
通用积分
3179.3009
学术水平
260 点
热心指数
268 点
信用等级
235 点
经验
197293 点
帖子
5300
精华
19
在线时间
3768 小时
注册时间
2019-9-13
最后登录
2024-7-5

初级热心勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch、知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会

Python 热度一直很高,我感觉这就是得益于拥有大量的包资源,极大的方便了开发人员的需求。下面这篇文章主要给大家介绍了关于Python利用itchat实现对微信中好友数据进行简单分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
前言
最近在一个微信公众号上看到一个调用微信 API 可以对微信好友进行简单数据分析的一个包 itchat 感觉挺好用的,就简单尝试了一下。
库文档说明链接在这: itchat
安装
在终端中输入以下命令,完成微信的API包itchat的安装。
我们这里使用python3的环境(python2也是可行的):   
sudo pip3 install itchat --upgrade
通过该命令判断是否安装成功:   
python3 -c "import itchat"

如果没有报错信息说明你已经将实验环境安装完成。


屏幕截图 2020-12-21 092008.png

微信好友数据进行分析示例

首先统计一下微信好友的男女比例:

#coding:utf-8
importitchat
# 先登录
itchat.login()
# 获取好友列表
friends=itchat.get_friends(update=True)[0:]
# 初始化计数器,有男有女,当然,有些人是不填的
male=female=other=0
# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算# 1表示男性,2女性
foriinfriends[1:]:
sex=i["Sex"]
ifsex==1:
male+=1
elifsex==2:
female+=1
else:
other+=1
# 总数算上,好计算比例啊~
total=len(friends[1:])
# 好了,打印结果

print(u"男性好友:%.2f%%"%(float(male)/total*100))
print(u"女性好友:%.2f%%"%(float(female)/total*100))
print(u"其他:%.2f%%"%(float(other)/total*100))


# 使用echarts,加上这段
fromechartsimportEchart, Legend, Pie
chart=Echart(u'%s的微信好友性别比例'%(friends[0]['NickName']),'from WeChat')
chart.use(Pie('WeChat',[{'value': male,'name': u'男性 %.2f%%'%(float(male)/total*100)},{'value': female,'name': u'女性 %.2f%%'%(float(female)/total*100)},{'value': other,'name': u'其他 %.2f%%'%(float(other)/total*100)}],radius=["50%","70%"]))
chart.use(Legend(["male","female","other"]))
delchart.json["xAxis"]
delchart.json["yAxis"]
chart.plot()
chart.save("/Library","phones")

效果如图:(不知道为什么还有那么多 其他。。。)



屏幕截图 2020-12-21 092029.png

然后抓取所有好友的个性签名,看看其中的高频词汇:

# coding:utf-8
importitchat
importre
itchat.login()
friends=itchat.get_friends(update=True)[0:]
tList=[]
foriinfriends:
signature=i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
rep=re.compile("1f\d.+")
signature=rep.sub("", signature)
tList.append(signature)
# 拼接字符串
text="".join(tList)
# jieba分词
importjieba
wordlist_jieba=jieba.cut(text, cut_all=True)
wl_space_split=" ".join(wordlist_jieba)
# wordcloud词云
importmatplotlib.pyplot as plt
fromwordcloudimportWordCloud, ImageColorGenerator
importos
importnumpy as np
importPIL.Image as Image
d=os.path.dirname(__file__)
alice_coloring=np.array(Image.open(os.path.join(d,"wechat.jpg")))
my_wordcloud=WordCloud(background_color="white", max_words=2000,mask=alice_coloring,max_font_size=40, random_state=42,font_path='/Users/sebastian/Library/Fonts/Arial Unicode.ttf').generate(wl_space_split)
image_colors=ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
# 保存图片 并发送到手机
my_wordcloud.to_file(os.path.join(d,"wechat_cloud.png"))
itchat.send_image("wechat_cloud.png",'filehelper')

效果如图:

屏幕截图 2020-12-21 092050.png

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值

0D04CBB8996CB009643B8D6FD844F0C0.jpg


关注“CDA人工智能学院”,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python EXCEL 人工智能 xcel exce

20180722071909_90195.png (98.72 KB)

20180722071909_90195.png

屏幕截图 2020-12-21 092029.png (108.31 KB)

屏幕截图 2020-12-21 092029.png

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-7-5 19:50