首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 助你解读微信好友圈

随着社交网络的飞速普及,微信已然成为我们的生活必需品,尽管大家吐槽声不断,但我们确实很难离开它了。每个人的微信好友没有上千也有几百,除了聊天和传输文件,还有哪些好友的小秘密可以挖一挖呢?

import itchat

itchat.autulogin()

itchat.get_friends()

接下来,我们就来看看itchat都能做什么:

获取好友注册地区

通过friends.Province方法可以获取好友的注册地区,通过对不同地区好友的数量进行统计,使用echarts-map即可画出如下好友微信区域分布图,点越亮,说明该地区的好友越多:

上图是作者的微信好友分布图。作为一个在东北上学,在北京上班的河北姑娘,目测图像的大致分布与事实还是比较相符的。不过,明显可以看出来山东地区闪烁着耀眼的光芒,看来作者的山东朋友不少呢,四不四可以考虑学个山东话当第三外语了~

获取好友微信签名

通过friends[i]['Signature']方法,可以获取好友签名。建议尝试一下,你会有意想不到的收获,哈哈。

根据获取的签名信息,作者尝试做了情感分析,看看大家最近的心态如何:将获取的签名暂存在一个list里,再使用snownlp对每条签名进行评估。snownlp会对每个签名进行打分(0-1),分值的高低代表了情感的类型是消极还是积极。以下是小编截取的前十条签名信息,sentiment即为打分结果:

将上述结果用echarts-lines展示出来,结果是这个样子的:

看来大多数小伙伴的签名得分都高于0.5,还是非常积极向上的。当然,你还可以多定义一个标签,看看sentiment低于0.5的是谁,平时可以多关心他一下(偷笑)。

获取好友头像

有木有觉得专克密集恐惧症患者啊(此处应有坏笑表情...)。至于拿这些图片来干点什么,比如按颜色给图片排个序?又或者看看上期笔者的文章《AI涂色小试,线稿也智能》,给好友头像重新涂个色?这就需要大家大开脑洞了,如果有什么好的idea,欢迎留言讨论。脑洞还是要有的,万一实现了呢~

除了获取好友信息,itchat的send方法也是一个比较常用的方法,通过send方法,你可以开发自己的微信陪聊机器人,也可以让它帮助你自动获所需信息,做你得力的小助手。

陪聊机器人

itchat的send方法可以自动回复好友信息,只要你定义了回复内容,它就可以帮你自动回复了,就像这样:

那么这些看起来有点机智的回复难道全部靠手写?当然不是,调用图灵机器人的API就可以了:

def get_response(msg):

apiUrl = 'http://www.tuling123.com/openapi/api'

data = {

'key': KEY,

'info': msg,

'userid': 'pth-robot',

}

r = requests.post(apiUrl, data=data).json()

return r.get('text')

将发送的信息(msg)作为请求参数发送给API接口,图灵机器人会根据msg配最佳回复。接下来使用itchat的send方法返回给好友。不过,陪伴朋友和家人的时间是幸福和宝贵的,不是机器人可以替代的呢。

微信小助手

同样是调用send方法,可以通过设定关键词,让python执行特定的程序并返回结果。以获取天气信息为例,你需要写一个爬虫程序,获取当天的天气信息,然后根据微信端传送的关键词,提取某地区的天气数据输出:

类似的功能还有很多,比如,可以让它帮你获取一下今天的微博头条或者车票信息等等。上述内容在技术实现上并没有太大的难度,关于itchat接口,百度一下,你就知道。至于echarts,则是来源于百度的一款可视化分析产品,包含了几乎所有常见的可视化图形示例,同样非常简单易用。另外上文提到的snownpl是一个用来做自然语言处理的工具,目测效果还不错,感兴趣的小伙伴可以自己试试看~

想了解更多数据挖掘的有趣实践,大家可以参考咱们团队的书《洞见数据价值》开始入门数据科学哦!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317G16J1N00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券