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

标签: python 微信 数据分析 api itchat
999人阅读 评论(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开发者微信公众号中的教程!

查看评论

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

我主要参考这篇文章进行实践:点击打开链接 python版本:3.5 首先整体步骤分为两步:第一步,抓取好友个性签名,这一步主要依靠itchat实现;第二步,分词并形成词云,主要依靠jieba和wo...
  • hhw9307
  • hhw9307
  • 2017-07-21 00:29:04
  • 1274

基于Python实现的微信好友数据分析

  最近微信迎来了一次重要的更新,允许用户对”发现”页面进行定制。不知道从什么时候开始,微信朋友圈变得越来越复杂,当越来越多的人选择”仅展示最近三天的朋友圈”,大概连微信官方都是一脸的无可奈何。逐步泛...
  • qinyuanpei
  • qinyuanpei
  • 2018-02-24 13:03:25
  • 1236

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

itchat中午吃午饭的时候,无意间浏览到某公众号的一篇文章,是关于爬微信好友的。自从爬虫工程师转数据分析师以来,很久没玩过爬虫了,于是乎玩心一起,吃完饭之后自己便尝试起来。itchat 包,已经完成...
  • Lee20093905
  • Lee20093905
  • 2018-01-13 17:53:52
  • 704

Python微信好友信息意义及取值分析(基于itchat)

本文以itchat库为基础,提供了一些好友信息意义的分析。 itchat提供了get_friends(self, update=False)方法用于获取微信好友列表,返回信息是一个用户信息字典的列表...
  • mighty13
  • mighty13
  • 2017-10-04 11:12:36
  • 16699

itchat 批量给微信好友发送祝福消息

明天就是元宵节(2018.3.2),微信批量发送祝福消息。 #coding=UTF-8 #基于python3.6 import itchat,time import sys from itchat....
  • zhizunyu2009
  • zhizunyu2009
  • 2017-08-31 15:00:40
  • 801

用itchat爬取朋友圈好友信息

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

python itchat实现微信自动回复

今天在实验楼发现一个特别好玩的,python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈!!...
  • yixianfeng41
  • yixianfeng41
  • 2017-02-16 22:00:32
  • 9208

Python爬取自己微信好友信息,并制作好友签名词云

本文参考教程来自微信公众号【Alfred在纽西兰】,文章如下:《一件有趣的事: 爬了爬自己的微信朋友》(点击阅读原文查看)根据原作者的思路以及代码,爬取自己的微信好友信息并制作好友签名词云图,在本次实...
  • SvJr6gGCzUJ96OyUo
  • SvJr6gGCzUJ96OyUo
  • 2017-08-06 00:00:00
  • 650

Python利用itchat库向好友或者公众号发消息

首先获得好友或者公众号的UserName 获取好友UserName#coding=utf8 import itchat itchat.auto_login(hotReload=True)#想给谁发信...
  • Co_zy
  • Co_zy
  • 2017-06-15 21:56:51
  • 8249

Python itchat个人微信账号接口定时发送群消息

需求说明 媳妇儿又换工作了,这次是有关运营的,具体什么是运营我也不知道,有一项工作内容是使用微信定时的网微信群里发送指定的信息,来维护,她问我这个东西可不可以自动化,于是乎就研究了一下,找到了pyth...
  • yanlovehan
  • yanlovehan
  • 2017-10-21 11:36:57
  • 3992
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 13万+
    积分: 3327
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    Worldhello


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