关闭

[置顶] Python 使用itchat 对微信好友数据进行简单分析

标签: python微信数据分析apiitchat
939人阅读 评论(0) 收藏 举报
分类:

人生苦短,我用Python!
Python 热度一直很高,我感觉这就是得益于拥有大量的包资源,极大的方便了开发人员的需求。

最近在一个微信公众号上看到一个调用微信 API 可以对微信好友进行简单数据分析的一个包 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开发者微信公众号中的教程!

1
0
查看评论

数据分析之——微信好友分析

itchat中午吃午饭的时候,无意间浏览到某公众号的一篇文章,是关于爬微信好友的。自从爬虫工程师转数据分析师以来,很久没玩过爬虫了,于是乎玩心一起,吃完饭之后自己便尝试起来。itchat 包,已经完成了wechat的个人账户API接口,使得获取个人微信信息更加方便。纯属好玩!!!itchat包的AP...
  • Lee20093905
  • Lee20093905
  • 2018-01-13 17:53
  • 166

python数据分析(1)——获取微信好友的统计信息

本文主要是尝试下一个比较有意思的python模块:wxpy,导入此模块之后,可以很方便的来创建一个微信机器人和做一些和微信相关的有意思的分析。1. wxpy 安装首先,通过pip方式进行安装,在命令行模式下输入:pip install -U wxpy如下图所示:2. 登录微信(1)先导入wxpy模块...
  • FlySky1991
  • FlySky1991
  • 2017-08-20 14:47
  • 1196

用itchat爬取朋友圈好友信息

用itchat爬取微信好友基本信息Python有一个好玩的软件包itchat,提供了一个微信api接口,借此可以爬取朋友圈的一些基本信息,下面我们一起来玩玩吧。import itchat import numpy as np import pandas as pd from collections ...
  • zhanshirj
  • zhanshirj
  • 2017-07-03 00:25
  • 4916

itchat爬取朋友圈签名制作词云

占坑 参考:http://blog.csdn.net/zhanshirj/article/details/74166303
  • Co_zy
  • Co_zy
  • 2017-08-22 09:31
  • 637

不知道被谁删了微信好友?用 Python 来帮忙呀

本文根据 gaosen 的开源项目 wechat-deleted-friends 整理而成。 还在苦恼不知道被谁删了微信好友么?这里有个 gaosen 编写的工具可帮到你: 查看被删的微信好友。原理就是新建群组,如果加不进来就是被删好友了(不要在群组里讲话,别人是...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-01-24 10:22
  • 1002

使用python抓取微信好友个性签名并形成词云(itchat;wordcloud)

我主要参考这篇文章进行实践:点击打开链接 python版本:3.5 首先整体步骤分为两步:第一步,抓取好友个性签名,这一步主要依靠itchat实现;第二步,分词并形成词云,主要依靠jieba和wordcloud实现。 1.抓取数据 抓取数据的过程非常简单,这里主要应用了itchat这个库...
  • hhw9307
  • hhw9307
  • 2017-07-21 00:29
  • 1012

python-itchat 统计微信群、好友数量

#coding=utf-8 import itchat from itchat.content import TEXT from itchat.content import * import sys import time import re reload(sys) sys.setdefaulten...
  • zhizunyu2009
  • zhizunyu2009
  • 2018-01-08 10:30
  • 245

数据分析之微信通讯录分析

简介: python有个itchat的库,据说是一个非常神奇的python库,可以干很多有意思的事情,今天闲着没事,把自己的微信分析了个遍,包括对微信好友性别、地域、以及签名等的分析。 思路: 有了itchat这个库,一切都不是太难办。先介绍一下,本人微信上目前有340左右的好友,首先是对微信...
  • u014257192
  • u014257192
  • 2017-08-20 23:53
  • 407

微信好友数据统计,能测出删除你的好友

利用下班时间和另一个朋友一起做了个小项目,利用微信网页版操作时的请求,来获取你微信的数据,从而实现对你微信好友的数据统计。              所用服务器:nginx+tomcat      ...
  • qq_26157609
  • qq_26157609
  • 2016-02-09 00:00
  • 491

itchat--玩转微信

这次从使用 itchat 玩转微信,算是真的体会到了所谓的:“同行看门道,外行凑热闹”。 http://itchat.readthedocs.io/zh/latest/ 这是 itchat 的文档,感兴趣的童鞋下去可以看看。原理大致来说就类似于网页登录微信,对数据进行爬取,然后做你想做。 所...
  • zy_dream
  • zy_dream
  • 2017-08-17 09:54
  • 917
    个人资料
    • 访问:126522次
    • 积分:3214
    • 等级:
    • 排名:第12600名
    • 原创:187篇
    • 转载:4篇
    • 译文:9篇
    • 评论:33条
    RUNNING|~_~|My web
    微信公众号
    课程设计、视频资源、有料趣文
    Worldhello


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论