python自动化之——获取钉钉群所有人的昵称

楔子

精神小伙沙大柱入职了一家新公司,该公司所有成员都在钉钉群。

一天,沙大柱的上级沙小牛布置了任务:大柱,你把群里所有人的名称导出来吧,我不会操作。

大柱表示:没问题,你把我升级成管理员吧,我去后台看看怎么导出。

但大柱万万没想到,他的上级沙小牛还是不会。于是,大柱只好使出浑身功力,为领导无脑前行。

大柱先对钉钉进行了一波操作,发现钉钉群成员列表下方的"查看更多"可以展开更多成员,但可惜每次都只加载有限数量,而公司成员实在太多……

历经“大战”,大柱终于利用 python 自动化直接操纵钉钉软件,将所有成员展开,并复制出来。

环境准备

  • windows 10
  • 钉钉 6.5.50
  • python3.11

python 依赖:

  • PyAutoGUI==0.9.53

PS.
pyautogui 是一个python库,能够操纵电脑,模拟鼠标、键盘的操作。
用这个库的目的是,解放双手,完成进入钉钉群,点击加载更多成员的一系列操作。

功能实现

搜索钉钉群


class SearchGroupAction(object):def __init__(self, name, win: Win32Window):self.name = nameself.win = windef run(self):w = self.winx = w.left + w.width / 2y = w.top + 10Clipboard.setText(self.name)pyautogui.click((x, y))time.sleep(0.5)Clipboard.paste()time.sleep(1)pyautogui.hotkey("enter")time.sleep(0.5)

疯狂点击“查看更多”按钮

class ParseMemberInfoAction(object):def __init__(self, win_ding: Win32Window):self.win = win_dingself.win_setting = Noneself.result_text = ''def run(self):w = self.win# 点击设置,访问设置对话框pyautogui.click((w.right - 35, w.top + 65))time.sleep(1)win_setting = pyautogui.getActiveWindow()pyautogui.hotkey('ctrl', 'a')pyautogui.hotkey('ctrl', 'c')text = Clipboard.getText()# 取消选中pyautogui.click(w.right - 100, w.top + 100)if '查看更多' in text:img = pyautogui.screenshot(region=(win_setting.left, win_setting.top, win_setting.width, win_setting.bottom))box: Box = pyautogui.locate(f'./res/chakangengduo.png', img)pyautogui.click(win_setting.left + box.left + box.width / 2, win_setting.top + box.top + box.height / 2)pyautogui.vscroll(-3000)time.sleep(0.5)# 滚动到底部后,此时”查看更多“的坐标固定了。下次点击可以不用再截图查坐标img = pyautogui.screenshot(region=(win_setting.left, win_setting.top, win_setting.width, win_setting.bottom))box: Box = pyautogui.locate(f'./res/chakangengduo.png', img)pyautogui.click(win_setting.left + box.left + box.width / 2, win_setting.top + box.top + box.height / 2)while True:pyautogui.hotkey('ctrl', 'a')pyautogui.hotkey('ctrl', 'c')text = Clipboard.getText()# 取消全选pyautogui.click()if '查看更多' not in text:print(text)self.result_text = textreturn selfpyautogui.click(win_setting.left + box.left + box.width / 2, win_setting.top + box.top + box.height / 2)pyautogui.vscroll(-3000)time.sleep(1)return self

执行:


def main():pywindow = pyautogui.getActiveWindow()w = pyautogui.getWindowsWithTitle('钉钉')[0]w.activate()w.maximize()print(w)SearchGroupAction("xxx群", w).run()pmc = ParseMemberInfoAction(w).run()time.sleep(3)# 恢复命令行界面pywindow.activate()

点击查看代码

python自动化之——获取钉钉群所有人的昵称相关推荐

  1. python pc微信 接收信息_GitHub - ericadver/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  2. python 微信公众号网页接口调用_GitHub - micsem00/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  3. python的读取微信界面_GitHub - lchb000/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息,接受转账.好友请求.入群请求,群管理等功能.可用于二次开发在线微信机器人.微信消息监控. ...

  4. python 接收微信pc端_GitHub - linhuisheng/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  5. python发送文件到钉钉群_iOS python 自动化打包,并在钉钉群里发通知

    最近感觉iOS 打包给测试人员测试,用Xcode 打包太费经了.项目编译太慢,一次打包可能需要20来分钟.于是就想用下自动化打包.本来想尝试下Fastlane 或者jenkins 但是觉得还是有点麻烦 ...

  6. python自动化办公 51cto_用Python开发钉钉群机器人,自动办公神器

    最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自 ...

  7. python 接口自动化unittest+DingtalkChatbot钉钉机器人消息封装

    python 接口自动化unittest+DingtalkChatbot机器人消息封装 安装DingtalkChatbot: pip install DingtalkChatbot 钉钉配置机器人: ...

  8. 通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python)

    通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python) https://github.com/QInzhengk/Math-Model-and-Machine-Learn ...

  9. python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}

    相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...

最新文章

  1. MF RC522读卡芯片手册
  2. 【Spring注解系列06】FactoryBean注入对象用法
  3. 在Eclipse上通过插件获取github上的spring源码
  4. 学起来 —— CSS 入门基础
  5. 车辆姿态相关的传感器概述
  6. redis序列化_SpringBoot整合redis
  7. WordPress图片采集网站源码 自带采集规则
  8. ChaiNext:BTC将挑战6W关口
  9. 关于 IO 和 NIO 的思考
  10. c++常用代码(持续更新)
  11. 多媒体教室建设方案综述
  12. Android - Md5加密 工具类
  13. html 刷新页面,javascript刷新页面的几种方法
  14. 合金电阻分类与合金电阻详细参数介绍
  15. html背景音乐微信播放器,微信小程序播放背景音乐(示例代码)
  16. Linux高级命令(一)
  17. Spark RDD的Transformation操作
  18. 【今日CV 计算机视觉论文速览 第147期】Tue, 23 Jul 2019
  19. 解决git在push时报错fatal: unable to access ‘https://github.com/sup0C/a.git/‘: errno 10054
  20. python ip动态代理_Python实现爬取可用代理IP

热门文章

  1. 计算机在心理学实验中的应用举例,实验心理学试题及答案
  2. HuaWei ❀ IPv6组播地址
  3. 2021国赛A题代码记录
  4. 贝叶斯决策论(Bayesian decision theory)
  5. Uncaught SyntaxError: Unexpected token )
  6. java动态规划货车运输_动态规划01背包问题_动态规划方法在配送线路优化中的应用研究...
  7. Win10开机密码忘了?教你破解Win10开机密码
  8. 华硕主板如何用u盘启动计算机,华硕主板u盘启动按f几_华硕主板怎么设置u盘启动-硬件之家...
  9. 如何释放linux的内存
  10. java 合并流_Java Stream 流如何进行合并操作