用python中的itchat框架 筛选出 指定某个微信群中 是否还有你自己的好友 并列出来

来源:互联网 发布:图像处理算法 编辑:程序博客网 时间:2024/06/05 14:43

问题: 

   当你新加入一个微信群,比如一个学习群,或者一个老乡群,可能你感觉一个都不认识、可能会有你认识的老乡 朋友、同学,如何从中筛选出 此微信群中哪些好友可能是你的微信好友,或者这个微信群压根就没有一个你微信好友呢?就是说你新加入了一个微信,现在让你找到这个微信群里可能会有你的好友,需要你列出来。一个个肉眼查 那是最慢的。
举例:我加入了一个【Android面试群】我想看下我的微信好友还有谁在此群里,一个个找比较难找,好友太多。筛选困难。

解决方法:

   本文假设你懂python。那么此问题好像不太难搞定。你懂python 跟微信没有关系也搞不定啊。所以你需要了解一个开源框架itchat 微信python机器人框架 通过此框架我们可以得到如下信息。1.好友列表(你的微信群所有好友)2.你加入的群的所有好友。那么问题来了。只需要看一看这两个集合中的交集部分即可。 python语法很简单 两个集合取交集 用如下方法即可。
 list(set(a).intersection(set(b))


A 集合与B集合的交集 会返回一个List。我们遍历此List遍得到啊,原来我的好友中有这么几个大神也在这个群里。简单思路有了。就通过itchat api得到 friends列表啊,每个字段对比下 代码就简单了!如下:
# -*- coding:utf-8 -*-# **********************************# ** http://weibo.com/lixiaodaoaaa ## ****** by:lixiaodaoaaa ***********# coding:utf-8import itchat# 先登录itchat.auto_login(hotReload=True)def getFriends():    return itchat.get_friends(update=True)[0:]# 得到自己的所有微信好友,并将他们的昵称放到一个list中def getUserNameList():    userNameList = set()    # 得到我的所有好友列表    for friend in getFriends():        userNameList.add(friend['UserName'])    return userNameList# 得到指定的 微信群,获得他们的所有的昵称放到一个list中。这个指定的微信群名称包含 ["android"]def getGroupAllNicknameList():    for chatRoom in itchat.get_chatrooms():        groupNameList = set()        if chatRoom['NickName'].__contains__("android"):            androidGroupName = chatRoom['UserName']            memberListDiction = itchat.update_chatroom(androidGroupName)            androidGroupContactlist = memberListDiction['MemberList']            for contact in androidGroupContactlist:                groupNameList.add(contact['UserName'])            return groupNameListif __name__ == '__main__':    userNameList = getUserNameList()    groupAllNicknameList = getGroupAllNicknameList()    interSectionUserNameList = userNameList.intersection(groupAllNicknameList)    for friend in getFriends():        if interSectionUserNameList.__contains__(friend['UserName']):            print(friend['NickName']+" _________ "+ friend['RemarkName'])





这样我就得到了。原来这个群里面 我的好友还有这么几个大神也在这个群里哈哈


相关解释:

    代码从优化上讲,并不是特别高效,算法比较冗余。有需要的可以帮忙简化下。速度比较慢!

阅读全文
2 0