zoukankan      html  css  js  c++  java
  • python探索微信朋友信息

     一、itchat

      itchat是一个开源的微信个人号接口,这一次就用它来来玩玩。

      在使用之前,先下载,老规矩通过 pip install itchat 即可安装。

      想要获取朋友圈信息,只需要几行代码就可以获取。为减少登录次数,将获取到的信息保存到 json 文件中即可。

    itchat.login()      # 通过二维码连接登录账号
    friend_msg = itchat.get_friends(update=True)[0:]        # 获取微信好友信息
    
    # 将微信好友信息保存起来,减少登录的次数
    with open('./friend_message.json', 'w', encoding='utf-8') as file:
        json.dump(friend_msg, file, ensure_ascii=False)
    
    file.close()

    二、读取文件获取信息

      我们只需要关注里面其中的主要信息,按照需求获取。由于只是玩玩而已,就只单单获取性别和城市信息。

      先获取性别信息

    def get_gender(message):
        sex_dic = {}
        sex_list = []
    
        for i in range(1, len(message)):
            sex = message[i]['Sex']
            if sex == 1:
                sex_dic['Male'] = sex_dic.get('Male', 0) + 1
                sex_list.append("")
            elif sex == 2:
                sex_dic['Female'] = sex_dic.get('Female', 0) + 1
                sex_list.append("")
            else:
                sex_dic['Unknown'] = sex_dic.get('Unknown', 0) + 1
                sex_list.append("Unknown")
    
        return sex_dic, sex_list

      再获取城市信息

    def get_city(message):
        city_list = []
    
        for i in range(1, len(message)):
            city = message[i]['City']
            if city == '':
                city_list.append(None)
            else:
                city_list.append(city)
    
        return city_list

    三、可视化

      将性别绘制成饼状图,城市分布绘制成柱状图。具体绘制的代码就不上了,详情请前往 GitHub

    with open("./friend_message.json", 'r', encoding='utf-8') as file:
        f_msg = json.load(file)
    file.close()
    
    sex_dic, sex_list = getData.get_gender(f_msg)
    city_list = getData.get_city(f_msg)
    # 将三个属性组成 DataFrame
    data = pd.DataFrame({'gender': sex_list, 'city': city_list})
    # 获取城市前十的数量
    city_dict = data['city'].value_counts()[:15].to_dict()
    # 绘制性别环状图
    draw_pie(sex_dic)
    # 绘制城市柱状图
    draw_bar(city_dict)

    四、总结

          

      说实话,这里面的男生绝对大部分是在大学认识的,毕竟理工科学校可不是闹着玩儿的;还有这 6.58% 不明性别的人不知道怎么设置的,为什么我没办法不设置,还是说......

            

      作为一个在东莞上学的广东汕头人,这样的分布确实是在意料之中。毕竟汕头是我生活了那么久的地方,在东莞也快度过三个年头了,不知不觉要大四了,最近的压力已经逐渐增加了,无力吐槽。

      这只是玩玩而已,如果你有什么脑洞或者想要挖掘更多个人好友信息,可以使用 itchat 接着玩。

  • 相关阅读:
    [导入]Repeater与DataGrid的效率,到底哪个的更好?!(结论很可能和你认为的不一样!)
    开发工具的选择
    在WINDOWS 下删除EISA配置的隐藏分区
    DNN使用升级包升级
    DNN中代码创建用户的CreateUser()方法的疑问
    eWebEditor的数据库连接字符串
    c/c++笔试题目(林锐)
    如何下载网页中的flash文件
    DotNetNuke: System.Security.Cryptography.CryptographicException: Bad Data
    win7安装iis错误解决方法汇总
  • 原文地址:https://www.cnblogs.com/lyuzt/p/11023315.html
Copyright © 2011-2022 走看看