【python实用小脚本-292】[HR揭秘]手工党点名10分钟的终结者|Python版Zoom自动签到+名单导出加速器(建议收藏)

1. 场景故事|"张三在吗?""麦没开,听不清!"

作为HR,我曾用15分钟逐一手动点名50人的线上培训,直到漏记一位试用期员工"未出席"导致他错失转正答辩;员工申诉、老板追责、我背锅......

→ 转折点:把招聘"批量筛选"思路搬到Zoom,用60行Python实现"自动入会+抓取与会者+生成CSV",现可8秒导出完整名单,误差0人。

2. 代码核心价值解析

脚本共83行,核心流程20行内搞定,先睹为快:

python 复制代码
# Zoom类:自动入会
def join(self):
    self.driver.get("https://zoom.us/join")
    # 1.填会议ID
    ui.WebDriverWait(self.driver, 100).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="join-confno"]'))
    )
    self.driver.find_element_by_xpath('//*[@id="join-confno"]').send_keys(self.meeting_personal_id)
    # 2.点加入
    self.driver.find_element_by_xpath('//*[@id="btnSubmit"]').click()
    # 3.浏览器入会+输密码
    ...
    # 4.等待密码页并输入
    passcode = ui.WebDriverWait(self.driver, 300).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="inputpasscode"]'))
    )
    passcode.send_keys(self.meeting_password)
    # 5.最终加入
    ui.WebDriverWait(self.driver, 300).until(
        EC.element_to_be_clickable((By.XPATH, '//*[@id="joinBtn"]'))
    ).click()
python 复制代码
# 抓名单:循环div直到找不到新人
def get_attendees_list(self):
    ui.WebDriverWait(self.driver, 1000).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="wc-container-left"]/div[3]/div/div[2]/div/div/div[1]/div'))
    )
    attendees, i = [], 1
    while True:
        try:
            elem = self.driver.find_element_by_xpath(
                f'//*[@id="wc-container-left"]/div[3]/div/div[2]/div/div/div[1]/div[{i}]/div'
            )
            attendees.append(elem.text)
            i += 1
        except NoSuchElementException:
            break
    # 写CSV带时间戳
    with open("attended.csv", "w", encoding='utf-8-sig') as f:
        f.write(datetime.now().isoformat(' ') + '\n')
        f.write(','.join(attendees))

代码执行流程图

GUI输入会议信息 启动浏览器 zoom.us/join 自动填ID+密码 成功入会 循环抓取与会者 写入attended.csv

三维价值评估

  • 时间收益:10分钟/次 → 8秒/次,年培训50次节省约500分钟
  • 误差消除:避免"听不清名字"导致的人工漏记、错记
  • 扩展潜力:改4行代码即可支持Teams、钉钉;加1行可自动上传HR系统

HR专业视角

"该脚本=组织行为学里的'电子签到+行为数据留痕':

  • 自动入会 ≈ 统一入职流程
  • 名单抓取 ≈ 实时考勤同步
  • 时间戳记录 ≈ 绩效审计日志"

3. 关键技术解剖台

Selenium显式等待(WebDriverWait)

▍HR眼中的技术价值

对应"招聘流程"中的节点确认:只有当前步骤材料齐全,才触发下一步面试。

▍工程师的实现逻辑
python 复制代码
ui.WebDriverWait(self.driver, 300).until(
    EC.element_to_be_clickable((By.XPATH, '//*[@id="joinBtn"]'))
)

技术三棱镜

  • 原理类比:多部门审批流,按钮可点击=审批人点了"同意"
  • 参数黑盒:300秒=最大容忍时长,等同'offer审批超时预警'
  • 避坑指南:设太短→页面未加载完就点击→脚本崩溃;设太长→浪费运行时长
▍复杂度可视化

70% 20% 10% 一次入会耗时分布 网络+Zoom加载 显式等待安全垫 本地计算

PySimpleGUI零成本交互

▍HR眼中的技术价值

相当于自助HR门户:让非技术同事也能"所见即所得"地填写会议信息。

▍核心代码
python 复制代码
sg.Window('Zoom', layout, size=(600, 200))
  • 原理类比:可视化表单≈员工自助录入个人信息
  • 参数黑盒:size=(600,200) 相当于'一页纸'简历,信息量刚好
  • 避坑指南:窗口未加"置顶"→用户找不到程序;加keep_on_top=True提升体验

4. 扩展应用场景

场景迁移实验室

案例1:培训签到 → 财务网银对账
python 复制代码
# 把url换成企业网银
# find_element瞄准"昨日余额"字段
# attendees列表改为"借方、贷方"金额

▶️ 改造收益:每日自动抓取银行流水生成CSV,对账时间从30分钟→3秒

案例2:签到+情绪分析
python 复制代码
# 会后自动切到Zoom聊天
# 抓取聊天内容→jieba分词→情感打分
# 存入Excel生成"员工情绪热力图"

▶️ 创新价值:HR实时洞察培训满意度,提前干预负面情绪

5. 总结

60行Python,把"复制会议ID→手动点名→Excel誊写"的重复流程压缩成8秒自动化;GUI封装让零基础同事也能一键运行。只要把XPATH和URL替换,同款思路即可迁移到Teams、钉钉、WebEx,甚至网银、电商后台,实现真正的"一脚本多场景"。

源码获取

完整代码已开源,包含详细的注释文档:

🔗 [GitCode仓库]:https://gitcode.com/laong-1024/python-automation-scripts

📥 [备用下载]:https://pan.quark.cn/s/654cf649e5a6, 提取码:f5VG

相关推荐
lsx2024062 分钟前
C++ 基本的输入输出
开发语言
ZH15455891313 分钟前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
B站计算机毕业设计超人8 分钟前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人9 分钟前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
CodeSheep程序羊14 分钟前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰15 分钟前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
机器学习之心HML18 分钟前
多光伏电站功率预测新思路:当GCN遇见LSTM,解锁时空预测密码,python代码
人工智能·python·lstm
2401_8414956420 分钟前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
王大傻092823 分钟前
python 读取文件可以使用open函数的 r 模式
python
I'mChloe23 分钟前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言