python 探索微信朋友信息

本文介绍使用Python的itchat插件获取微信好友信息。先通过pip安装itchat,登录账号获取好友信息并保存为json文件。接着编写函数从文件中提取性别和城市信息,最后将性别绘制成饼状图,城市分布绘制成柱状图,实现信息的可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  

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学习圈
来源:优快云
原文:https://blog.youkuaiyun.com/zhoulei124/article/details/92081120
版权声明:本文为博主原创文章,转载请附上博文链接!

 

转载于:https://www.cnblogs.com/bzdmz/p/11042494.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值