用python中的itchat框架 筛选出 指定某个微信群中 是否还有你自
用python中的itchat框架 筛选出 指定某个微信群中 是否还有你自己的好友 并列出来
当你新加入一个微信群,比如一个学习群,或者一个老乡群,可能你感觉一个都不认识、可能会有你认识的老乡 朋友、同学,如何从中筛选出 此微信群中哪些好友可能是你的微信好友,或者这个微信群压根就没有一个你微信好友呢?就是说你新加入了一个微信,现在让你找到这个微信群里可能会有你的好友,需要你列出来。一个个肉眼查 那是最慢的。举例:我加入了一个【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-8
import 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 groupNameList
if __name__ == '__main__':
userNameList = getUserNameList()
groupAllNicknameList = getGroupAllNicknameList()
interSectionUserNameList = userNameList.intersection(groupAllNicknameList)
for friend in getFriends():
if interSectionUserNameList.__contains__(friend['UserName']):
print(friend['NickName']+" _________ "+ friend['RemarkName'])
这样我就得到了。原来这个群里面 我的好友还有这么几个大神也在这个群里哈哈
代码从优化上讲,并不是特别高效,算法比较冗余。有需要的可以帮忙简化下。速度比较慢!
用python中的itchat框架 筛选出 指定某个微信群中 是否还有你自相关教程