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

      

    1、安装插件

    一、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)
    ---------------------
    作者:python学习圈
    来源:CSDN
    原文:https://blog.csdn.net/zhoulei124/article/details/92081120
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    There is an overlap in the region chain修复
    There is an overlap in the region chain
    region xx not deployed on any region server
    python 中的re模块,正则表达式
    TCP粘包问题解析与解决
    yield from
    Git push提交时报错Permission denied(publickey)...Please make sure you have the correct access rights and the repository exists.
    mysql 中Varchar 与char的区别
    Mysql 字符集及排序规则
    请实现一个装饰器,限制该函数被调用的频率,如10秒一次
  • 原文地址:https://www.cnblogs.com/bzdmz/p/11042494.html
Copyright © 2011-2022 走看看