首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Python 查看微信好友位置信息

用 Python 查看微信好友位置信息

作者头像
伪君子
发布2018-04-04 15:32:51
1.6K0
发布2018-04-04 15:32:51
举报
文章被收录于专栏:伪君子的梦呓伪君子的梦呓

0 前言

上一次是用 itchat 这个包,然后把好友的性别比例打印出来,并且弄出了饼图和柱状图,今天还是使用 itchat 这个包,不过是用来看一下微信好友的位置信息(柱状图)

1 环境说明

Win10 系统下 Python3,编译器是 Pycharm,需要安装 itchat、matplotlib、pandas 这3个包

这里只介绍 Pycharm 安装第三方包的方法。

2 相关代码

2.1 全部好友的位置信息

先是导入需要的三个包, itchat、matplotlib、pandas。

import itchat
import matplotlib.pyplot as plt
import pandas as pd

接着就是用 itchat 这个包实现登录微信网页版,获取数据

itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
data = pd.DataFrame()  # 提出好友的昵称、性别、省份、城市、个性签名,生成一个数据框
columns = ['NickName', 'Sex', 'Province', 'City', 'Signature']
for col in columns:
    val = []
    for i in friends[1:]:  # friends[0]是自己的信息,因此我们要从[1:]开始
        val.append(i[col])
    data[col] = pd.Series(val)
plt.rcParams['font.sans-serif']=['SimHei']    # 如果不设置这一句,中文不显示
plt.bar(data['Province'].value_counts().index,data['Province'].value_counts())  # 选择柱状图,而不是直方图。
plt.xticks(rotation=90)     # 横坐标旋转90度
plt.show()

把代码复制到 pycharm,然后直接鼠标右键,选择 "Run" ,。过一会儿,屏幕就会弹出一个二维码,扫描二维码,在手机上确认登录。

如果看到是这个的,那就说明成功了,等一会儿就可以看见图了。

第一个是那些没有位置信息的人数,显然,我微信好友还是广东的多

我微信好友里的确有国外的,可是没这么多,应该有人改了位置信息

2.2 某个省份的好友位置信息

前面的部分还是一样的,这里就不赘述了

import itchat
import matplotlib.pyplot as plt
import pandas as pd
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
data = pd.DataFrame()  # 提出好友的昵称、性别、省份、城市、个性签名,生成一个数据框
columns = ['NickName', 'Sex', 'Province', 'City', 'Signature']
for col in columns:
    val = []
    for i in friends[1:]:  # friends[0]是自己的信息,因此我们要从[1:]开始
        val.append(i[col])
    data[col] = pd.Series(val)
gd = data[data['Province'] == '广东']['City']  # 省份可以自行修改
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(gd.value_counts().index, gd.value_counts())
plt.xticks(rotation=90)  # 删掉括号里面的内容,不用侧着头看字
plt.show()

如果把上面注释那所说的内容删掉,那就可以正常看图了,不用侧着头,如下面的代码。

gd = data[data['Province'] == '广东']['City']  # 省份可以自行修改
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(gd.value_counts().index, gd.value_counts())
plt.xticks()  # 删掉括号里面的内容,不用侧着头看字
plt.show()

这时候,东莞前面的那个未知的东西我就分析不出来了

把省份换成山西,再运行一下,发现也是有那个未知的东西。

3 相关说明

itchat 的项目主页:https://github.com/littlecodersh/itchat

itchat 的说明文档:http://itchat.readthedocs.io/zh/latest/

pandas的项目主页:https://github.com/pandas-dev/pandas

pandas 的说明文档:http://pandas.pydata.org/pandas-docs/stable/

matplotlib的主页:https://matplotlib.org/

参考链接(点击原文链接):http://blog.csdn.net/Lee20093905/article/details/79052795

题图:Photo by João Silas on Unsplash

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萧北月 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 前言
  • 1 环境说明
  • 2 相关代码
  • 3 相关说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档