【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

相关推荐
Csvn14 小时前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
Wenweno0o14 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
chenjingming66614 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
cch891814 小时前
Python主流框架全解析
开发语言·python
不爱吃炸鸡柳15 小时前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
十五年专注C++开发15 小时前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
Momentary_SixthSense15 小时前
设计模式之工厂模式
java·开发语言·设计模式
sg_knight15 小时前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
好运的阿财15 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
‎ദ്ദിᵔ.˛.ᵔ₎15 小时前
STL 栈 队列
开发语言·c++