【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

相关推荐
普通网友2 小时前
PictureSelector 相册全白不显示问题
java·开发语言
Nobuggggg2 小时前
LabelImg使用时报错:TypeError: setValue(self, val: int)
python·scikit-learn
普通网友2 小时前
用 Next.js 15 做图片查看网站:图片双击放大的交互坑与修复
开发语言·javascript·交互
BoBoZz192 小时前
MultipleRenderWindows 创建多个渲染窗口
python·vtk·图形渲染·图形处理
独自破碎E2 小时前
kafka中的时间轮实现
java·开发语言
程序员阿鹏2 小时前
如何保证写入Redis的数据不重复
java·开发语言·数据结构·数据库·redis·缓存
JAY_LIN——82 小时前
字符串函数(strncpy/cat/cmp、strstr、strtok、strerror)
c语言·开发语言
lly2024062 小时前
C# 数据类型
开发语言
树欲静而风不止慢一点吧2 小时前
Qt5/6版本对应的Emscripten版本
开发语言·qt