微信好友信息分析---听说你最近要py?

最近浏览网页看到了wxpy这个东西,不仅惊喜不已。于是开始动手做一个微信好友性别,省市分布的程序。我也想要了解一下大家啊~ 遗憾的是之前没有学过python,那就边看菜鸟教程边做吧。我做的一些笔记之后会分享出来。

准备

开发工具:pycharm(py就要专业点,调试非常方便。当然idea和eclipse都可以通过添加插件的方式开发python)
wxpy库(微信API,是在itchat基础上开发的)
matplotlib库(用于图表绘制,这里我们做了饼图和柱状图)

相关方法

这里创建一个机器人用于登录,该方法执行后,需要扫描弹出的二维码,进行微信登录。

bot = Bot(cache_path=True)

这里使用cache_path参数,可以避免短时间内多次扫码登录。建议加上。

friends = bot.friends(update=True)

bot对象下有很多聊天变量,可以在官方文档查阅,这里使用的friends使我们需要的好友。

下面我们定义一个方法用于分析我们的好友对象,并把分析结果进行必要处理,并绘制图像。具体程序如下:

def analy_people(people):
    # 获取性别分布
    statsex = people.stats('sex')
    # 获取省分布
    statprovince = people.stats('province')
    # 获取市分布
    statcity = people.stats('city')

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.figure(1)
    plt.subplot(311)
    plt.title('微信好友性别分布')  # 图名
    dictsex = statsex.get('sex')
    x = dictsex.keys()
    y = dictsex.values()
    # 对性别代码进行替换
    xlst = [''] * 3
    xlst[list(x).index(0)] = '其他(好奇怪啊)'
    xlst[list(x).index(1)] = '纯爷们'
    xlst[list(x).index(2)] = '女汉子'
    plt.pie(y, labels=xlst, autopct='%1.1f%%', shadow=False, startangle=150)
    plt.subplot(312)
    plt.title('微信好友省分布') # 图名
    dictprovince = statprovince.get('province')
    x1 = dictprovince.keys()
    y1 = dictprovince.values()
    x1lst = list(x1)
    x1lst[x1lst.index('')] = '未知'
    plt.bar(x1lst[0:10], list(y1)[0:10])
    plt.subplot(313)
    plt.title('微信好友所在市分布') # 图名
    dictcity = statcity.get('city')
    x2 = dictcity.keys()
    y2 = dictcity.values()
    x2lst = list(x2)
    x2lst[x2lst.index('')] = '未知'
    plt.bar(x2lst[0:10], list(y2)[0:10])
    print("================================")
    plt.show()

figure是一个画布,suplot是画布中的第几块。matplotlib这个东西令我不禁想起了上学时使用matlab的年代,那是我逝去的青春啊~

最后程序中调用这个方法:

analy_people(friends)

ctrl+shift+F10 运行,扫码登录,我们的分析结果就呈现出来了 (=^_^=)
微信好友信息分析---听说你最近要py?_第1张图片
最近在搞加微信群好友的东东(没有数据量,你在想peach)。但是老是报1205,频率也调整了,还是有这个问题。不知各位有何见解,欢迎分享啊~

初出茅庐,略微拙劣。多多包涵~

END

你可能感兴趣的:(python)