前言

最近在一个微信公众号上看到一个调用微信 API 可以对微信好友进行简单数据分析的一个包 itchat 感觉挺好用的,就简单尝试了一下。

库文档说明链接在这: itchat

安装

在终端中输入以下命令,完成微信的API包itchat的安装。

我们这里使用python3的环境(python2也是可行的):

sudo pip3 install itchat --upgrade

通过该命令判断是否安装成功:

python3 -c "import itchat"

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

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

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

#coding:utf-8

import itchat

# 先登录

itchat.login()

# 获取好友列表

friends = itchat.get_friends(update=True)[0:]

# 初始化计数器,有男有女,当然,有些人是不填的

male = female = other = 0

# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算# 1表示男性,2女性

for i in friends[1:]:

sex = i["Sex"]

if sex == 1:

male += 1

elif sex == 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,加上这段

from echarts import Echart,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"]))

del chart.json["xAxis"]

del chart.json["yAxis"]

chart.plot()

chart.save("/Library","phones")

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

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

# coding:utf-8

import itchat

import re

itchat.login()

friends = itchat.get_friends(update=True)[0:]

tList = []

for i in friends:

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分词

import jieba

wordlist_jieba = jieba.cut(text,cut_all=True)

wl_space_split = " ".join(wordlist_jieba)

# wordcloud词云

import matplotlib.pyplot as plt

from wordcloud import WordCloud,ImageColorGenerator

import os

import numpy as np

import PIL.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')

效果如图:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

python通过微信聊天记录分析_Python利用itchat对微信中好友数据实现简单分析的方法...相关推荐

  1. python分别统计男女人数_Python实践-itchat获取微信好友总人数以及男女比例

    1 itchat是微信的个人开放接口:本文利用Python+itchat实现简单的个人好友数量以及男女比例的统计 itchat 的安装:pip install itchat(需要权限的可以使用sudo ...

  2. iPhone微信聊天记录误删怎么办?怎么恢复微信删除的记录

    在使用iPhone的过程中,特别是使用微信时,有没有突然一瞬间不小心就将聊天框删掉的时候?我想这应该是大多数人的经历吧,这种让人心跳骤停的瞬间,再也不想经历第二次了.iPhone微信聊天记录误删怎么办 ...

  3. 删掉微信聊天记录怎么恢复 ?怎么恢复微信聊天记录?

    您可以恢复已删除的微信历史记录吗? 这个问题没有确定的答案,因为恢复取决于许多因素,包括删除聊天记录的时间以及使用的设备类型.但是,有几种方法可以成功恢复已删除的微信历史记录,例如使用数据恢复软件或联 ...

  4. Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet

    Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet 发表时间:2020-04-26 问题:从当前目录或子目录中查询符合条件的excel表格,并从这 ...

  5. python操作微信电脑版_Python使用itchat模块实现简单的微信控制电脑功能示例

    本文实例讲述了Python使用itchat模块实现简单的微信控制电脑功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=UTF-8 import request ...

  6. python利用itchat监控微信好友的头像是否更换(纯属娱乐)

    利用itchat模块可以模拟登录微信网页版,所以可以获取一些微信的基本信息,包括好友名字,数量,头像,群聊等等,也可模拟发送信息,所以写了一个监控好友头像是否改变,如果好友头像改变了,立马赞美ta的头 ...

  7. 利用itchat搭建微信机器人详解(附三个实用示例)

    本文简介 好久没更新文章啦,因为最近在赶一本Py的入门书,碰巧今天把这篇文章赶出来了. 而很多加群的小朋友很多都是咨询如何搭建微信机器人的,所以就把这一章放出来了, 取需,三个实用示例:定时发信息,集 ...

  8. python爬取个人信息_Python爬取个人微信朋友信息操作示例

    本文实例讲述了Python爬取个人微信朋友信息操作.分享给大家供大家参考,具体如下: 利用Python的itchat包爬取个人微信号的朋友信息,并将信息保存在本地文本中 思路要点: 1.利用itcha ...

  9. python信息检索和评价系统_Python爬虫实现的微信公众号文章下载器

    所以我就想有什么方法能否将这些公众号文章下载下来.这样的话,看起来也方便.但是网上的方法要么太复杂(对于我这个爬虫入门新手来说),要么付费. 但我的需求其实却很简单--"方便的查找 / 检索 ...

最新文章

  1. Java中import及package的用法
  2. UVALive - 7163
  3. python元祖迭代_如何在Python中迭代元组的堆栈
  4. 单机最大负载_电流互感器允许接入的实际最大二次负载(注电案例1865)
  5. TSCAN算法matlab,使用TscanCode和scan-build进行静态分析
  6. 在实际项目中,如何选择合适的机器学习模型?
  7. knewone最新分享购物网站模板
  8. Linux中配置pacman镜像源(manjaro)
  9. 微信小程序 this.data与this.setData
  10. CPP 获取目录下的文件
  11. 简历模板80套.zip
  12. 云服务器带宽如何选择?
  13. 香港服务器托管单线路、双线路以及多线路如何区别
  14. 李开复:如何设计你的年度计划
  15. com.sun.jna.Pointer类的方法
  16. 计算机windows10怎么找word,Win10 word路径在哪?Win10如何修改word路径
  17. 2022-2028中国防爆电话市场现状研究分析与发展前景预测报告
  18. android 不卡 华为,明明安卓不卡了,但是为什么还比不过苹果?
  19. Java企业微信号开发之微信网页授权和获取用户信息
  20. html四边形布局,canvas四边形.html

热门文章

  1. 什么是udp攻击?udp攻击的基本原理是什么
  2. java文件大小格式化
  3. 阿里云 oss多文件上传
  4. 行业观察 | 从粗放走向精细,地产审计风控数字化改革与创新
  5. IDEA 中如何将项目打成war包
  6. S7-1200的Socket通信设置
  7. 网络商品交易及有关服务行为管理暂行办法(转)
  8. pta c语言段错误,PTA常见错误
  9. Anaconda pytorch cpu版本安装——图文详情版
  10. Python网络编程-一文厘清socket、TCP和UDP那点事