上班族必备的通讯工具之一——微信,大家或许并不陌生,大家有没有像我一样,随着工作领域的扩展,微信里的朋友也越来越多,慢慢的,朋友圈分组也会越来越乱?肯定有吧,今天我就用脚本来把你的加入的群聊、微信朋友(包括昵称、性别、所在城市地区、个性签名)翻个底朝天。
首先利用python来实现的话用到的是itchat这个开源接口,通常:
利用缓存模式cache_path扫码登录,然后chats()获取好友信息,并利用friends方法返回统计信息。
接着再进一步进行爬取。
一、头像获取
爬取用户头像:
get_friends获取到朋友信息之后,根据UserName来获取用户头像,并write到img目录下。
二、头像拼接
将获取到的头像利用shuffle方法进行随意拼接排序:利用文件处理模块os指定img目录下所有的文件,math.sqrt()开平方根计算每张小图片的宽高以及计算出每行的图片数,Image.ANTIALIAS方法将图片高质量的进行缩小,最后利用paste方法将所有头像进行拼接。拼接完成之后保存成一张总体图片。
所有照片合成一张all.png,如下:
三、性别统计
itchat.login()登录获取好友信息,根据Sex字段判断性别,1 代表男性(man),2 代表女性(women),3 未知(unknown)
四、获取签名
为了进一步分析我的好友大致都有什么特征,我把好友的个性签名一起抓取,分析制作成词云。个性签名是保存在 Signature 这个 key 中,由于有些签名包含些表情,最初抓取会变成 emoji、span、class 等等这些无关的词。所以需要先替换掉,另外,还有类似 /= 之类的符号,也需要写个简单的正则替换掉,再把所有拼起来。
五、生成词云
抓取整理了签名的数据,接下来就是制作出词云。这里使用的是 wordCloud 来进行词云的制作。词云的制作我定义了一个:create_word_cloud() 函数,完整代码如下:
六、用到的模块
欢迎大家的支持与关注
领取专属 10元无门槛券
私享最新 技术干货