微信朋友圈里的大数据

 

“ 清理下[微笑],不用回。
相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了。但群发消息不仅仅会把通讯录里面所有的好友骚扰一遍,而且你还得挨个删除好几百个聊天记录,回复大家的疑问和鄙视。

大约一年前,网上流传一段python代码,查看被删的微信好友。原理就是新建群组,如果加不进来就是被删好友了。我也执行过。但是正如程序里面所提示的,查询结果可能会引起一些心理上的不适,请小心使用。

本文会另辟蹊径,通过调用微信接口,分析微信朋友的信息数据,能够分析拉黑的,搞微商的,性别分布,城市分布,省份分布等。

调用一个微信接口 itchat来操作微信
先看下官方介绍: itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。

import itchat

# 先登录  
itchat.auto_login(hotReload=True)

def getFriends():
    return itchat.get_friends(update=True)[0:]

调用一下函数getFriends()就能得到朋友信息列表了

屏幕快照 2017-08-03 下午10.25.56.png

有了这些数据,就可以做分析了。
用pandas得到一个二维数组,去掉作用不大的数据列,如:
‘Alias’, ‘VerifyFlag’, ‘HideInputBarFlag’, ‘UniFriend’, ‘Uin’, ‘Statues’, ‘StarFriend’, ‘UserName’, ‘AppAccountFlag’, ‘ChatRoomId’, ‘DisplayName’, ‘EncryChatRoomId’ 等作用不大的数据。
然后按照我们想要的数据分组:

if __name__ == '__main__':
    friends = getFriends()
    friends_df = pd.DataFrame(list(friends))
    friends_df.dropna(axis=1, inplace=True)

    droped_cloum = ['Alias', 'VerifyFlag', 'HideInputBarFlag', 'UniFriend', 'Uin', 'Statues', 'StarFriend', 'UserName',
                    'AppAccountFlag', 'ChatRoomId', 'DisplayName', 'EncryChatRoomId', 'HeadImgUrl', 'MemberCount',
                    'OwnerUin', 'MemberList', 'PYInitial', 'Signature', 'SnsFlag', 'PYQuanPin', 'KeyWord',
                    'RemarkPYInitial', 'RemarkPYQuanPin']
    drop_cloums(friends_df, droped_cloum)
    friends_df.to_csv("friends.csv")

    city = friends_df.groupby('City').size()
    province = friends_df.groupby('Province').size()
    sex = friends_df.groupby('Sex').size()
    print(city)
    print(province)
    print(sex)

结果:

屏幕快照 2017-08-03 下午11.08.11.png
用图像展现出来

 sex.plot(kind='pie', subplots=True, autopct='%.2f', figsize=(4, 4), title="Sex",legend = True)  # 显示百分比
    plt.show()

屏幕快照 2017-08-03 下午11.19.26.png
1是男,2是女,0是没有填写的。
展示省份分布:

    plt.xticks(np.arange(len(province.index)), province.index, fontproperties=font)
    plt.show(province.plot(kind='bar'))

屏幕快照 2017-08-03 下午11.13.09.png
Mac上plot处理中文没处理好。

因为怕有些心理的不适,这里没有统计拉黑的名单。但是很容易得到的,字段”UniFriend”。
统计分析签名,能分析部分微商出来。这里也没有去统计了。
一个小小的朋友圈,也能折射人间百态。淡定淡定!

更多精彩,请关注微信公众号: python爱好部落

 

posted @ 2017-08-04 13:23  Snake8  阅读(491)  评论(1编辑  收藏  举报