zoukankan      html  css  js  c++  java
  • 微信朋友圈里的大数据

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

    大约一年前,网上流传一段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爱好部落

  • 相关阅读:
    戴尔英语09年互联网络投放策略规划书
    haproxy相关
    邮送广告
    python和rails交互应用
    ubuntu搭建邮件服务器
    waitr自动化测试
    ruby写爬虫
    free git svn repositories
    网站开发外包遇到的问题
    电影推荐
  • 原文地址:https://www.cnblogs.com/lucklly/p/7284568.html
Copyright © 2011-2022 走看看