python自动化之——获取钉钉群所有人的昵称
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自动化之——获取钉钉群所有人的昵称相关推荐
- python pc微信 接收信息_GitHub - ericadver/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...
WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...
- python 微信公众号网页接口调用_GitHub - micsem00/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...
WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...
- python的读取微信界面_GitHub - lchb000/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...
WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息,接受转账.好友请求.入群请求,群管理等功能.可用于二次开发在线微信机器人.微信消息监控. ...
- python 接收微信pc端_GitHub - linhuisheng/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...
WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...
- python发送文件到钉钉群_iOS python 自动化打包,并在钉钉群里发通知
最近感觉iOS 打包给测试人员测试,用Xcode 打包太费经了.项目编译太慢,一次打包可能需要20来分钟.于是就想用下自动化打包.本来想尝试下Fastlane 或者jenkins 但是觉得还是有点麻烦 ...
- python自动化办公 51cto_用Python开发钉钉群机器人,自动办公神器
最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自 ...
- python 接口自动化unittest+DingtalkChatbot钉钉机器人消息封装
python 接口自动化unittest+DingtalkChatbot机器人消息封装 安装DingtalkChatbot: pip install DingtalkChatbot 钉钉配置机器人: ...
- 通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python)
通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python) https://github.com/QInzhengk/Math-Model-and-Machine-Learn ...
- python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}
相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...
最新文章
- MF RC522读卡芯片手册
- 【Spring注解系列06】FactoryBean注入对象用法
- 在Eclipse上通过插件获取github上的spring源码
- 学起来 —— CSS 入门基础
- 车辆姿态相关的传感器概述
- redis序列化_SpringBoot整合redis
- WordPress图片采集网站源码 自带采集规则
- ChaiNext:BTC将挑战6W关口
- 关于 IO 和 NIO 的思考
- c++常用代码(持续更新)
- 多媒体教室建设方案综述
- Android - Md5加密 工具类
- html 刷新页面,javascript刷新页面的几种方法
- 合金电阻分类与合金电阻详细参数介绍
- html背景音乐微信播放器,微信小程序播放背景音乐(示例代码)
- Linux高级命令(一)
- Spark RDD的Transformation操作
- 【今日CV 计算机视觉论文速览 第147期】Tue, 23 Jul 2019
- 解决git在push时报错fatal: unable to access ‘https://github.com/sup0C/a.git/‘: errno 10054
- python ip动态代理_Python实现爬取可用代理IP
热门文章
- 计算机在心理学实验中的应用举例,实验心理学试题及答案
- HuaWei ❀ IPv6组播地址
- 2021国赛A题代码记录
- 贝叶斯决策论(Bayesian decision theory)
- Uncaught SyntaxError: Unexpected token )
- java动态规划货车运输_动态规划01背包问题_动态规划方法在配送线路优化中的应用研究...
- Win10开机密码忘了?教你破解Win10开机密码
- 华硕主板如何用u盘启动计算机,华硕主板u盘启动按f几_华硕主板怎么设置u盘启动-硬件之家...
- 如何释放linux的内存
- java 合并流_Java Stream 流如何进行合并操作