告别重复粘贴和敲字,一分钟导出微信群成员列表!

小编注:想获得更多专属福利吗?金币加成、尊享众测、专属勋章、达人福利任务你想要吗?如果想要,赶紧来申请认证站内生活家!猛击此链接

告别重复粘贴和敲字,一分钟导出微信群成员列表!

背景

8月的某一天,剁主计划的所有剁主被要求做两件事情——一是督促分剁群的所有值友把群昵称改为严格匹配什么值得买昵称,二是昵称限期改完之后把群昵称导出以便跟值得买后台的用户昵称一一比对。这两件事情都不简单,但相比之下,导出群成员的昵称列表是可以通过技术手段简化的。于是我重拾好久不碰的VB Script,为自己、也为各位辛苦的剁主写了一小段简化这一任务的脚本。

既然写了,就分享出来给大家吧,说不定某天你也会有“导出微信群成员列表”的需求。通过本文介绍的方法,熟练的情况下,只需1分钟,就可以导出一份简洁而完整的微信群成员列表,无需群主权限,任何群成员都可以哦。

实战演示

先来看一个完整的导出过程。起点是从微信网页版登陆,终点是一个文本格式的包含所有群成员的文件。导出一个群成员数接近500的列表,熟练情况下,总时间控制在1分钟以内。不用羡慕,看完本文,你也可以做到。告别重复粘贴和敲字,一分钟导出微信群成员列表! 

告别重复粘贴和敲字,一分钟导出微信群成员列表!

原理

原理很简单,利用微信网页版的群成员列表的HTML代码,把群成员的昵称从HTML代码中过滤出来,就得到了该群的成员列表。事实上网上流传着利用同样原理后期再利用MS Excel处理数据的教程,本文不使用MS Excel,而是利用Windows脚本以及正则表达式来把后期的数据过滤和筛选自动化完成。

告别重复粘贴和敲字,一分钟导出微信群成员列表!

除了前期从网页版获取HTML源码以外,剩下的步骤已尽可能简化,采用诸如“双击”、“拖放”等简易操作,尽量避免接触脚本本身的内容,不用担心,相信看完本文,任何没有脚本基础的读者都可以成功。

所需工具

具体步骤

准备脚本

把下面这段代码复制到剪贴板,然后打开网址,把这段代码粘贴到“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%,接下来就是见证奇迹的时刻。

告别重复粘贴和敲字,一分钟导出微信群成员列表!

执行脚本

执行脚本一共分两步——

  1. 双击GroupChatAliasList.wsf,它会自动生成另一个文件GroupChatAliasList.bat

  2. 把上述保存的包含HTML代码的文本文件(本例中是TEXT.txt)拖放GroupChatAliasList.bat上面

等待2 - 3秒的时间,脚本执行结束会生成一个.log文件,打开这个.log文件,就是最终的群成员列表。操作熟练之后,从获取数据到最终出结果,1分钟绰绰有余。告别重复粘贴和敲字,一分钟导出微信群成员列表! 

告别重复粘贴和敲字,一分钟导出微信群成员列表!

告别重复粘贴和敲字,一分钟导出微信群成员列表!

总结和讨论

除了向小小值交差以外,对各分剁的剁主来说,这个工具还有一个附加的用途——通过对比前后两次的名单,可以追踪到那些退群的人,而一般来说,微信群有人退出是很难发觉是谁的。告别重复粘贴和敲字,一分钟导出微信群成员列表! 当然,通过这种方式追踪到的只是退群的人的昵称,并不包含微信号等信息,只能说聊胜于无吧。

另外,对于导出的群成员列表,目前网页的元素中有两个重复的名称,实测都是群成员的昵称。而昵称的优先级关系是“备注名 > 群昵称 > 微信号昵称”,也就是说有备注名优先显示备注名,没有备注名有群昵称的优先显示群昵称,如果备注名和群昵称都没有,则显示该微信账号的昵称。

因此,对于各位剁主来说,在添加了不少剁友有些还有备注的情况下,导出的群成员列表会被“备注名”污染,想要导出一个纯净的“群昵称”列表,最好的办法是加一个小号到群里,再利用这个小号来导出群成员列表。

另外随着微信网页版的代码结构变化,上述脚本工具有可能会失效,但即使发生了这样的状况,理论上只需把正则表达式(下图中红框内容)修改一下就能修复。

告别重复粘贴和敲字,一分钟导出微信群成员列表!

最后,请各位剁主大大多多打赏,哈!

推荐关注:
经验
标签:经验 +关注
剁主计划-上海
标签:剁主计划-上海 +关注
普通生活家
标签:普通生活家 +关注
手机软件
分类:手机软件 +关注

提示

鼠标移到标签上方,

尝试关注标签~

评论141

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

2424 141

关注数量超出限制,请先删除部分内容再尝试

关注数量超出限制,
请先删除部分内容再尝试

登录
注册
用户名/邮箱
密码
验证码
看不清?点击更换
看不清?点击更换 忘记密码?

已收藏
去我的收藏夹 >

已取消收藏
去我的收藏夹 >

小提示