首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Python查看微信共同好友

通过Python查看微信共同好友

作者头像
小白学视觉
发布2019-06-28 15:20:46
1.3K0
发布2019-06-28 15:20:46
举报
总有思路清奇的朋友存在,想实现查看微信共同好友:

由于之前分享的代码有获取过微信好友头像,所以当时第一反应是通过itchat微信接口获取好友信息,比对两个人的好友信息列表就可以实现了。按理说这么简单的话,应该早有现成的代码了,然而并没有搜到,那正好,拿来练练手!

先放最终结果图

思路

首先通过itchat这个微信个人号接口扫码登录个人微信网页版,获取可以识别好友身份的数据。这里是需要分别登录两人微信的,拿到两人各自的好友信息存到列表中。

这样一来,查共同好友就转化成了查两个列表中相同元素的问题。获取到共同好友信息后,可以通过命令行窗口print出来,也可以写入txt文件。

itchat

tchat是一个开源的微信个人号接口,使用python调用微信从未如此简单——其开发文档 https://itchat.readthedocs.io/zh/latest/#itchat

首先是安装itchat模块,例如:pip install itchat

安装完成在代码中通过 import itchat 导入,之后直接调用

#获取登录二维码,扫码登录微信网页版
itchat.auto_login()
#获取好友信息列表
friendList = itchat.get_friends(update=True)

通过以上两行,就可以拿到好友数据信息了,之后再从中筛选有用的信息进行处理即可。这里有一处感觉特别酷,就是通过enableCmdQR参数在命令行中展示二维码:

#在命令行生成登录二维码
itchat.auto_login(enableCmdQR=True)

好友信息处理

拿到的好友信息是什么样的呢?其实特别有用的并不多,你的微信号和联系方式是拿不到的。

而这里的UserName,同一个你在不同的微信号中UserName并不相同。所以,在并没有一个可以特定区分好友的情况下,我们选择获取多组信息来组合拼凑成一个整体,这里我选择了以下数据组成一个字典dict:

{"City":"","PYQuanPin":"","Province":"","PYInitial":"","Sex":0,'Signature':"",'Signature':"",'NickName':""}

通过以上一个字典八组数据来代表每一位独立好友信息。接下来在要比较的两组好友信息列表中,进行查重,这里我采用了最笨的遍历方法:

for i in contactlist:
    if i in contactlist2:
        if i not in[contactlist[0],contactlist2[0],empty,emptyM,emptyF]:
            common_list.append(i)
            count += 1

记录信息

由于一些特殊字符因为编码问题无法写入txt文档,我选择既写入txt又同时print出来相结合的方式:

with open("record.txt","w") as f:
    print(f"你们共有{count}位共同好友(若除性别外其它信息为空,不在此记录),他们分别是:")
    f.write(f"你们共有{count}位共同好友,他们分别是:\n")
    for i in display:
        print(i)
        try:
            f.write(i+"\n")
        except:
            f.write("该好友信息中含有字符无法识别,请在窗口中查看\n")

回顾

整个流程下来,涉及到的就是itchat接口的使用、将信息赋值给list、获取两个list公共元素、将信息写入txt文件这四部分。

除了itchat接口获取好友数据看着复杂外,别的都是基础语法。而itchat相关的代码就几行,所以你说,python是不是贼好用?

代码下载

除了代码外,这里我也将py文件封装成了exe文件来直接下载,这样即使电脑没装python或者你不用python也可以拿来玩了

后台回复 共同好友 获取代码和程序下载链接~

最后,欢迎关注并分享给身边也在学Python的朋友吧,谢谢啦~

往期文章一览

1、CVPR2019 | 港中文&腾讯优图等提出:暗光下的图像增强

2、手撕OpenCV源码之高斯模糊

3、漫话:如何给女朋友解释为什么计算机只认识0和1?

4、10个不得不知的Python图像处理工具,非常全了!

5、OpenCV4.0实现人脸识别

6、基于内容的图像检索技术综述-传统经典方法

7、为什么不建议你入门计算机视觉

8、机器视觉检测系统中这些参数你都知道么?

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

本文分享自 小白学视觉 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档