• 微信朋友圈里的大数据


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

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

  • 相关阅读:
    体验一下:AndroidX
    Android研发技术的进阶之路
    App 冷启动与热启动及启动白屏优化
    Android Q 正式命名为 Android 10
    Android开发学习路线的七个阶段和步骤
    安卓旅途之——开发数独(一)
    项目总结
    小组互评与自评
    典型用户与场景
    第二个Sprint计划
  • 原文地址:https://www.cnblogs.com/lucklly/p/7284568.html
Copyright © 2020-2023  润新知