使用itchat批量获取微信群成员信息

为了方便的获取微信群成员的信息,找到了一个很强大的python项目itchat,它将网页微信的各种操作都封装成了朴有天python类,简单的几行代码就能完成需求。项目主页。在这里记录我的操作过程

操作过程

首先安装itchat

1
pip install itchat

进入python环境,一步一步输入命令代码

1
2
3
import itchat
#登录网页微信,会弹出一个二维码,扫描一下
itchat.auto_login()

成功扫描登陆后,python控制台会显示成功

然后就可以操作微信了

1
2
3
4
5
6
#获取所有的群
roomslist = itchat.get_chatrooms()
#通过群名称找到群 myroom=itchat.search_chatrooms(name=u'大侠群')
#查看roomlist内容,找到群A的群号ID,一般为‘@@09if83xxx4c2c3850...’形式
#获取群A的成员信息,返回一个包含信息的类
mems=itchat.update_chatroom('ID', detailedMember=True)
1
2
3
4
5
6
7
8
9
10
11
#使用json将mems转换为dict
import json
memstr=json.dumps(mems)
memdict=json.loads(memstr)
#取得dict里的list
memlist=memdict['MemberList']
#遍历list,将需要的信息写入txt
with open('F:/A.csv','a',encoding='utf-8') as f:
for mlist in memlist:
strs=mlist['NickName']+','+mlist['DisplayName']+','+mlist['UserName']+','+str(mlist['Sex'])+','+mlist['City']+'\n'
f.write(strs)

生成的txt文件可能会存在乱码的情况,一般用utf-8编码打开txt文件后,再转为ANSI编码保存一下就可以解决。如图

扩展

itchat的功能很丰富,可以用来部署个人自动微信号(很多淘宝助手的个人微信号估计就是这么做的),可以用来远程控制物联网终端。

类似的项目也有很多

youfou/wxpy: 优秀的api包装和配套插件,微信机器人/优雅的微信个人号API

liuwons/wxBot: 类似的基于Python的微信机器人

zixia/wechaty: 基于Javascript(ES6)的微信个人账号机器人NodeJS框架/库

sjdy521/Mojo-Weixin: 使用Perl语言编写的微信客户端框架,可通过插件提供基于HTTP协议的api接口供其他语言调用

HanSon/vbot: 基于PHP7的微信个人号机器人,通过实现匿名函数可以方便地实现各种自定义的功能

虽然很不要脸,但是还请您多多打赏 ^_^