最近浏览网页看到了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
运行,扫码登录,我们的分析结果就呈现出来了 (=^_^=)
最近在搞加微信群好友的东东(没有数据量,你在想peach)。但是老是报1205,频率也调整了,还是有这个问题。不知各位有何见解,欢迎分享啊~
初出茅庐,略微拙劣。多多包涵~