告别重复粘贴和敲字,一分钟导出微信群成员列表!
背景
8月的某一天,剁主计划的所有剁主被要求做两件事情——一是督促分剁群的所有值友把群昵称改为严格匹配的什么值得买昵称,二是昵称限期改完之后把群昵称导出以便跟值得买后台的用户昵称一一比对。这两件事情都不简单,但相比之下,导出群成员的昵称列表是可以通过技术手段简化的。于是我重拾好久不碰的VB Script,为自己、也为各位辛苦的剁主写了一小段简化这一任务的脚本。
既然写了,就分享出来给大家吧,说不定某天你也会有“导出微信群成员列表”的需求。通过本文介绍的方法,熟练的情况下,只需1分钟,就可以导出一份简洁而完整的微信群成员列表,无需群主权限,任何群成员都可以哦。
实战演示
先来看一个完整的导出过程。起点是从微信网页版登陆,终点是一个文本格式的包含所有群成员的文件。导出一个群成员数接近500的列表,熟练情况下,总时间控制在1分钟以内。不用羡慕,看完本文,你也可以做到。
原理
原理很简单,利用微信网页版的群成员列表的HTML代码,把群成员的昵称从HTML代码中过滤出来,就得到了该群的成员列表。事实上网上流传着利用同样原理后期再利用MS Excel处理数据的教程,本文不使用MS Excel,而是利用Windows脚本以及正则表达式来把后期的数据过滤和筛选自动化完成。
除了前期从网页版获取HTML源码以外,剩下的步骤已尽可能简化,采用诸如“双击”、“拖放”等简易操作,尽量避免接触脚本本身的内容,不用担心,相信看完本文,任何没有脚本基础的读者都可以成功。
所需工具
一台运行Windows操作系统的电脑
Google Chrome浏览器(或者Mozilla Firefox浏览器)
具体步骤
准备脚本
把下面这段代码复制到剪贴板,然后打开网址,把这段代码粘贴到“Type (or paste) here...”处,然后点击下方绿色的< DECODE >按钮。至于为什么要多此一举,请做编辑器的小编来解答一下。
PHBhY2thZ2U+DQogICAgPGpvYiBpZD0iR2VuZXJhdGVCQVQiPg0KICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJWQlNjcmlwdCI+DQogICAgICAgICAgICBzdHJCQVRGaWxlTmFtZSA9IFJlcGxhY2UoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSwgIi53c2YiLCAiLmJhdCIpDQogICAgICAgICAgICBzdHJCQVRGaWxlQ29udGVudCA9ICJAZWNobyBvZmYiICYgdmJDckxmICZfDQogICAgICAgICAgICAiY3NjcmlwdCAvL25vbG9nbyAvL2pvYjpHcm91cENoYXRBbGlhc0xpc3QgIiAmIENocigzNCkgJl8NCiAgICAgICAgICAgIFdTY3JpcHQuU2NyaXB0RnVsbE5hbWUgJiBDaHIoMzQpICYgIiAlMSINCiAgICAgICAgICAgIFNldCBvYmpGU08gPSBDcmVhdGVPYmplY3QoIlNjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0IikNCiAgICAgICAgICAgIFNldCBvV3JpdGVyID0gb2JqRlNPLk9wZW5UZXh0RmlsZShzdHJCQVRGaWxlTmFtZSwgMiwgVHJ1ZSkNCiAgICAgICAgICAgIG9Xcml0ZXIuV3JpdGVMaW5lIHN0ckJBVEZpbGVDb250ZW50DQogICAgICAgICAgICBvV3JpdGVyLkNsb3NlDQogICAgICAgIDwvc2NyaXB0Pg0KICAgIDwvam9iPg0KICAgIDxqb2IgaWQ9Ikdyb3VwQ2hhdEFsaWFzTGlzdCI+DQogICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9IlZCU2NyaXB0Ij4NCiAgICAgICAgICAgICcqKioqKioqKioqKioqKioqKioqKionDQogICAgICAgICAgICAnIEdyb3VwQ2hhdEFsaWFzTGlzdCAgJw0KICAgICAgICAgICAgJyAgICBMYXdyZW5jZSBDaGVuICAgICcNCiAgICAgICAgICAgICcgVXBkYXRlZDogMDgvMDIvMjAxOCAnDQogICAgICAgICAgICAnKioqKioqKioqKioqKioqKioqKioqJw0KICAgICAgICAgICAgc3RyUmVnRXhwID0gIjxwIGNsYXNzPSIgJiBjaHIoMzQpICAmICJuaWNrbmFtZS4qPz4oLis/KTwvLis+Ig0KICAgICAgICAgICAgU2V0IG9iakZTTyA9IENyZWF0ZU9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QiKQ0KICAgICAgICAgICAgJyoqKioqKioqKioqKioqDQogICAgICAgICAgICAnIE1haW4gUHJvY2Vzcw0KICAgICAgICAgICAgJyoqKioqKioqKioqKioqDQogICAgICAgICAgICBJZiBOb3QgV3NjcmlwdC5Bcmd1bWVudHMuQ291bnQgPSAwIFRoZW4NCiAgICAgICAgICAgICAgICBTZXQgb2JqQXJncyA9IFdTY3JpcHQuQXJndW1lbnRzDQogICAgICAgICAgICAgICAgRm9yIEVhY2ggb2JqSXRlbSBpbiBvYmpBcmdzDQogICAgICAgICAgICAgICAgICAgIElmIG9iakZTTy5GaWxlRXhpc3RzKG9iakl0ZW0pIFRoZW4NCiAgICAgICAgICAgICAgICAgICAgICAgIFByb2Nlc3NGaWxlKG9iakl0ZW0pDQogICAgICAgICAgICAgICAgICAgIEVuZCBJZg0KICAgICAgICAgICAgICAgIE5leHQNCiAgICAgICAgICAgIEVuZCBJZg0KICAgICAgICAgICAgJyoqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICcgRnVuY3Rpb24gUHJvY2Vzc0ZpbGUNCiAgICAgICAgICAgICcqKioqKioqKioqKioqKioqKioqKioqDQogICAgICAgICAgICBGdW5jdGlvbiBQcm9jZXNzRmlsZShzRmlsZSkNCiAgICAgICAgICAgICAgICBTZXQgb2JqSW5wdXQgPSBvYmpGU08uT3BlblRleHRGaWxlKHNGaWxlLDEpDQogICAgICAgICAgICAgICAgU2V0IG9iak91dHB1dCA9IG9iakZTTy5PcGVuVGV4dEZpbGUoc0ZpbGUgJiAiLmxvZyIsMixUcnVlKQ0KICAgICAgICAgICAgICAgIERvIFVudGlsIG9iaklucHV0LkF0RW5kT2ZMaW5lDQogICAgICAgICAgICAgICAgICAgIHN0ciA9IG9iaklucHV0LlJlYWRMaW5lDQogICAgICAgICAgICAgICAgICAgIHN0ck5pY2tOYW1lID0gUmVnRXhwVGVzdChzdHJSZWdFeHAsIHN0cikNCiAgICAgICAgICAgICAgICAgICAgSWYgc3RyTmlja05hbWUgPD4gIiIgVGhlbg0KICAgICAgICAgICAgICAgICAgICAgICAgb2JqT3V0cHV0LldyaXRlTGluZSBzdHJOaWNrTmFtZQ0KICAgICAgICAgICAgICAgICAgICBFbmQgSWYNCiAgICAgICAgICAgICAgICBMb29wDQogICAgICAgICAgICAgICAgb2JqT3V0cHV0LkNsb3NlDQogICAgICAgICAgICAgICAgb2JqSW5wdXQuQ2xvc2UNCiAgICAgICAgICAgIEVuZCBGdW5jdGlvbg0KICAgICAgICAgICAgJyoqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICcgRnVuY3Rpb24gUmVnRXhwVGVzdA0KICAgICAgICAgICAgJyoqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgIEZ1bmN0aW9uIFJlZ0V4cFRlc3QocGF0cm4sIHN0cm5nKQ0KICAgICAgICAgICAgICAgIERpbSByZWdFeCwgTWF0Y2gsIE1hdGNoZXMNCiAgICAgICAgICAgICAgICBTZXQgcmVnRXggPSBOZXcgUmVnRXhwDQogICAgICAgICAgICAgICAgcmVnRXguUGF0dGVybiA9IHBhdHJuDQogICAgICAgICAgICAgICAgcmVnRXguSWdub3JlQ2FzZSA9IFRydWUNCiAgICAgICAgICAgICAgICByZWdFeC5HbG9iYWwgPSBUcnVlDQogICAgICAgICAgICAgICAgU2V0IE1hdGNoZXMgPSByZWdFeC5FeGVjdXRlKHN0cm5nKQ0KICAgICAgICAgICAgICAgIElmIE1hdGNoZXMuQ291bnQgPiAwIFRoZW4NCiAgICAgICAgICAgICAgICAgICAgUmVnRXhwVGVzdCA9IE1hdGNoZXMoMCkuU3ViTWF0Y2hlcygwKQ0KICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgUmVnRXhwVGVzdCA9ICIiDQogICAgICAgICAgICAgICAgRW5kIElmDQogICAgICAgICAgICBFbmQgRnVuY3Rpb24NCiAgICAgICAgPC9zY3JpcHQ+DQogICAgPC9qb2I+DQo8L3BhY2thZ2U+
再把上述decode之后的这段代码完整地复制到记事本(notepad.exe)里面,然后把这个文件命名为GroupChatAliasList.wsf并保存到本地任意目录。
在保存文件的时候需要注意一下,选择的文件类型必须是All File (*.*)所有文件类型。否则即使文件名是GroupChatAliasList.wsf,最后得到的还是一个GroupChatAliasList.wsf.txt文本文件。
获取HTML代码
使用Google Chrome(或者Mozilla Firefox)打开微信网页版,并用手机微信扫码登陆。登陆之后,从左边的列表中选择需要导出群成员列表的微信群,然后点击群名称旁边的那个下拉箭头。这样会把群成员全部展开。
展开之后,就可以用浏览器的工具获取我们感兴趣的HTML代码了。以Google Chrome为例,首先利用快捷键“Ctrl + Shift + C”激活检查元素模式(Mozilla Firefox快捷键相同),然后把鼠标指针在群列表的边框附近移动,使高亮显示的部分覆盖所有群成员,然后鼠标左键点击一个那个范围。
通过这一步之后,在现有的微信网页版代码结构下(不排除后续改版的可能),你应该选中了一个div容器,要么是id="mmpop_chatroom_members",要么是class=" members",要么是class="scroll-wrapper scrollbar-dynamic members_inner ng-scope",再或者就是class="scrollbar-dynamic members_inner ng-scope scroll-content scroll-scrolly_visible"。你也不用管这么多,只要蓝色高亮的部分覆盖了所有群成员,这个div容器就是正确的选择,否则重新利用“Ctrl + Shift + C”再选择一遍。
接下来,右击这个选中的div容器,选择Copy复制 - Copy复制outerHTML。
然后打开记事本(notepad.exe),把复制的内容粘贴进去。并把这个文件任意命名,保存到上述GroupChatAliasList.wsf相同目录下。保存的时候会有一个警告,不用理会,直接选择“是”即可。
最后得到这样两个文件,目标已完成90%,接下来就是见证奇迹的时刻。
执行脚本
执行脚本一共分两步——
双击GroupChatAliasList.wsf,它会自动生成另一个文件GroupChatAliasList.bat
把上述保存的包含HTML代码的文本文件(本例中是TEXT.txt)拖放到GroupChatAliasList.bat上面
等待2 - 3秒的时间,脚本执行结束会生成一个.log文件,打开这个.log文件,就是最终的群成员列表。操作熟练之后,从获取数据到最终出结果,1分钟绰绰有余。
总结和讨论
除了向小小值交差以外,对各分剁的剁主来说,这个工具还有一个附加的用途——通过对比前后两次的名单,可以追踪到那些退群的人,而一般来说,微信群有人退出是很难发觉是谁的。 当然,通过这种方式追踪到的只是退群的人的昵称,并不包含微信号等信息,只能说聊胜于无吧。
另外,对于导出的群成员列表,目前网页的元素中有两个重复的名称,实测都是群成员的昵称。而昵称的优先级关系是“备注名 > 群昵称 > 微信号昵称”,也就是说有备注名优先显示备注名,没有备注名有群昵称的优先显示群昵称,如果备注名和群昵称都没有,则显示该微信账号的昵称。
因此,对于各位剁主来说,在添加了不少剁友有些还有备注的情况下,导出的群成员列表会被“备注名”污染,想要导出一个纯净的“群昵称”列表,最好的办法是加一个小号到群里,再利用这个小号来导出群成员列表。
另外随着微信网页版的代码结构变化,上述脚本工具有可能会失效,但即使发生了这样的状况,理论上只需把正则表达式(下图中红框内容)修改一下就能修复。
最后,请各位剁主大大多多打赏,哈!
charles布衣
校验提示文案
潮SoSerious
校验提示文案
小六同学
校验提示文案
露天粮仓
校验提示文案
qisexen
校验提示文案
magiconch
校验提示文案
说好不说谎
校验提示文案
紫梦文心
校验提示文案
tiu-
校验提示文案
pgodspeed
校验提示文案
登机箱
校验提示文案
xiaowu815
校验提示文案
西瓜强强
校验提示文案
君无涯
校验提示文案
zouzoulong
校验提示文案
我的老婆是信小兔
校验提示文案
geekfury
校验提示文案
小小值小师妹
小灰机18金币起飞~~~
校验提示文案
闪闪小姨妈
校验提示文案
danjohn
校验提示文案
sherwin28
校验提示文案
无章
校验提示文案
值友6428611394
校验提示文案
hfdpl
校验提示文案
抱抱偶
校验提示文案
买总该行了吧
校验提示文案
书中自有大刀片
校验提示文案
天涯未至
校验提示文案
桔子凶猛
校验提示文案
Char_
校验提示文案
wkxsac
校验提示文案
avivi0526
校验提示文案
zhzhcn
校验提示文案
小六同学
校验提示文案
无忧小迷糊
校验提示文案
zhangen23
校验提示文案
海豹中透着贫穷
校验提示文案
beeye
校验提示文案
houlai1997
校验提示文案
小七去哪了
校验提示文案