获取课程QQ群成员群名片,与选课名单核对

核对QQ群成员是否在选课名单里,并检查哪些同学选课了但是没进群。

选课名单的格式是excel表格。
我们的目的是,想要知道:

(1)哪些群成员不在选课名单里
(2)哪些同学在选课名单却不在QQ群里。

一、根据QQ群号获取群成员昵称

登录QQ群官网,选择群管理-成员管理-目标QQ群,右键查看(或者直接Windows+F12快捷键),在控制台输入如下代码,获取群成员昵称。这里需要注意的是,要想输出所有群成员的昵称,需要在输入代码前下拉网页直至加载出所有群成员。
代码如下:

var n=$('#groupMember .list tr.mb');
var t='昵称\n';
for(var i=0;i<n.length;i++) {
    var mp = n[i].children[3].children[0].innerText;
    t +=mp.trim() + '\n';
}

复制群名片粘贴保存到csv文件
我的群名片保存在member.csv中。只有一列,没有写标题,第一行即为第一个群成员的群名片。

二、比较群名片和选课名单

采用Python编程。这里需要用到pandas和re库。

1.读取群名片到dataframe
import pandas as pd
df = pd.read_csv("./member.csv",header=None)
2.提取群名片中的汉字(组成名字)

群成员的名字保存在list中。因为我处理的群名片的格式是姓名+班号,所以还需要提取群名片中的汉字。利用正则表达式提取汉字,再连接成名字。

import re
### 列表 元素是名字  用于保存群名片中的名字,也就是群成员的名字
list1 = [] ## 群成员名字
####  提取汉字  #####
for a_str in df.iloc[:,0]:###  遍历群名片dataframe的第一列 也就是群名片
    ## 正则表达式 从群名片中获取汉字  返回汉字列表
    a_list = re.findall(r'[\u4e00-\u9fa5]', a_str)
    a = ""
    for j in a_list:###  遍历汉字列表 将汉字连起来组成名字
        a =a+j ## 连接汉字
    print(a)## a即为当前群成员的名字
    list1.append(a)## 追加新名字
print(list1)
3.读取选课名单中的姓名
####  读取选课名单中的姓名列  并转成list
real_names = pd.read_excel('./选课名单.xlsx')## 选课名单dataframe
list2 = real_names['姓名'].to_list()## 选取dataframe姓名列,并转list
4.对比两个list,找出它们相对于对方的相对补集
list1_2 = []## 在1中不在2中的人
list2_1 = []## 在2中不在1中的人

###  遍历群成员名字 找出不在选课名单中的人
for i in list1:
    if i not in list2:
        list1_2.append(i)
###  遍历选课名单的姓名列 找出不在群里的人
for i in list2:
    if i not in list1:
        list2_1.append(i)

list1_2 即为在群里,不在选课名单 。“在课程群,但没选课”
list2_1即为在选课名单,不在群里 。“已选课,但没在课程群”

好了,到这里就结束了,有什么不妥当的地方还望大家指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值