pywinauto+pytesseract实现企业微信客户端自动化批量添加好友

1.项目介绍

本项目主要是利用 pywinauto 自动化操作和 pytesseract OCR图片识别技术,实现了企业微信的批量添加好友操作,解放双手,摆脱重复的工作,减轻工作压力。 目前市面上还是有很多软件都是客户端形式的,比如说 QQ,微信,企业微信等等,selenium 也只能是实现网页端的自动化操作, 但是pywinauto的出现弥补了这一弊端,pywinauto 可以操作电脑客户端软件,并且非常好用和实用。但是pywinauto 有很多窗口也是无法识别到的,就比如企业微信使用pywinauto也只能是识别出主窗口,其他窗口还是识别不了的。所以这里就用到了pytesseract OCR 图片文字识别技术,可以把 窗口中的文字识别出来,然后判断程序执行到哪一步,然后再根据pywinauto 获取到的坐标进行点击操作。

2.项目实现过程

2.1 安装+测试pytesseract

前面的一篇博客已经详细讲解过了,这里不再描述,详情请戳这里

2.2 安装+测试pywinauto

2.2.1 pip 安装 pywinauto

pip install pywinauto -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

2.2.2 安装好之后就要确定使用技术(‘win32’ or ‘uia’)

​ 如不能确定程序到底适用于那种backend,可以借助于GUI对象检查工具来做,常用的检查工具有Inspect.exe,Spy++ 等, 可以自行找地方下载,或使用下方夸克网盘链接进行下载。 下载好软件直接找到Inspect .exe运行就好了,具体的使用方法可以百度或者自行研究一下,像Inspect.exe 将左上角的下拉列表中切换到“UI Automation”,然后鼠标点一下你需要测试的程序窗体,inspect就会显示详细的信息。如果显示为“拒绝访问”,那么程序的backend就是win32,如下图所示。
在这里插入图片描述

然后就使用Spy++来查找窗口的句柄、标题、类等信息。
在这里插入图片描述

2.2.3 测试 pywinauto

测试代码

# 确定好 backend 为 uia
# start 这里填写所要运行程序的地址:
Application(backend='uia').start('D:\WXWORK\WXWork\WXWork.exe')
# 连接到企业微信
app = Application(backend='uia').connect(title='企业微信')
# 选中企业微信的窗口
wind_calc = app['企业微信']
# 获取当前窗口显示的坐标
coordinate = wind_calc.rectangle()
print(coordinate )# 打印值为: <RECT L234, T167, R1154, B817>

如果能够打印出当前窗口的详细坐标,那么则表示测试成功, 这个库需要调用 win32 这个库,如果有报错,可以查看我的 这篇文档(点击这里)

2.3 实现代码

# start 这里填写所要运行程序的地址:
Application(backend='uia').start('D:\WXWORK\WXWork\WXWork.exe')
# 连接到企业微信
app = Application(backend='uia').connect(title='企业微信')
# 选中企业微信的窗口
wind_calc = app['企业微信']
# 获取当前窗口显示的坐标
coordinate = wind_calc.rectangle()
# 程序左边缘距离显示器左边缘的像素
l_coordinate = coordinate.left
# 程序右边缘距离显示器左边缘的像素
r_coordinate = coordinate.right
# 程序上边缘距离显示器上边缘的像素
t_coordinate = coordinate.top
# 程序下边缘距离显示器上边缘的像素
b_coordinate = coordinate.bottom# 1.打开通讯录
mouse.click(coords=(l_coordinate + 25, b_coordinate - 220))# 2. 点击新的联系人
mouse.click(coords=(l_coordinate + 150, t_coordinate + 80))# 3.点击右上角添加
mouse.click(coords=(r_coordinate - 60, t_coordinate + 37))#  等待机制 看看是否有窗口弹出来
wind_new = app['添加新联系人']
# 等待窗口处于可见状态 retry_interval 重新检测间隔
wind_new.wait(wait_for='ready', timeout=10, retry_interval=2)
l_coordinate_new = coordinate_new.left
r_coordinate_new = coordinate_new.right
t_coordinate_new = coordinate_new.top
b_coordinate_new = coordinate_new.bottom# 点击输入手机号的框
mouse.click(coords=(l_coordinate_new + 100, t_coordinate_new + 92))
write_info(phone)
# 按下回车进行搜索  # # 回车键
send_keys("{VK_RETURN}")# 搜索之后的所有窗口,都是检测不到的,所以需要用到 COR 图片文字识别技术,这里直接导入pytesseract
wind_new.capture_as_image()  # 窗口截图# 将截图进行图片识别
pytesseract.image_to_string(wind_new.capture_as_image(), lang='chi_sim', config='--psm 6')

然后具体的一些实现逻辑都是一些重复的工作量了,这里不多描述,如果还有不懂的可以私信作者

点击链接即可下载。
链接:请戳这里

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70467.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信自动加好友可以使用python实现

一、 现在电脑上安装python环境&#xff08;可以自行百度&#xff09; 二、安装python的虚拟环境 pip3 install virtualenv 三、创建一个虚拟环境 virtualenv venv -p python 四、在安装的虚拟环境中找到script文件夹 五、将以下的auto压缩包解压&#xff0c;放到script下 六…

Python 企业微信自动批量添加好友

**使用说明****1、**此应用由四个文件组成&#xff08;1个主运行程序、2个文本存储档、1个图片识别文件夹。&#xff09; 1.1、imgs_all文件夹中存放的5张格式为jpg的图片是用来捕捉屏幕桌面是否存在图片&#xff0c;不同电脑时大多数通用&#xff0c;反之要进行重新截图获取&a…

微信自动批量添加好友,可以这样实现?

一、 现在电脑上安装python环境&#xff08;可以自行百度&#xff09; 二、安装python的虚拟环境 pip3 install virtualenv 三、创建一个虚拟环境 virtualenv venv -p python 四、在安装的虚拟环境中找到script文件夹 五、将以下的auto压缩包解压&#xff0c;放到script下 六…

传统巨头进驻Web3云计算会是下一个大趋势吗?

2023年的科技圈风起云涌&#xff0c;科技巨头纷纷围绕AI吹响了军杯赛的号角&#xff0c;以ChatGPT为代表的AI技术预示着第四次工业革命已经到来&#xff0c;而当前恰处于关键时期。 几十年的积淀与数月的“狂飙”&#xff0c;证明了AI绝不是一次短暂的技术泡沫&#xff0c;其将…

推特账户设置推文保护

1.点击头像&#xff0c;进入设置页 2.选择安全与隐私 3. 勾选“protect your Tweets”并保存即可 4. 其他账号的查看效果

推特开发者账号 获取推文的视频链接

关于如何获得一个推特开发者账号请看此贴&#xff1a; 推特开发者账号的申请 或 搜索微信公众号 twitterDeveloper 获得帮助 在爬取推文的时候&#xff0c;会碰到一些带有视频的推文 可以通过 extended_entities参数来获取视频的url 代码如下&#xff1a; 在对上面的推文调…

推特开发者账号申请 elevated 高级 academic 学术 权限 2021年11月

主要用来介绍推特开发者账号的 elevated academic 权限如何申请 推特开发者v2接口已经开放1年了&#xff0c;申请流程也有了较大的变动。 先去推特开发者官网申请开发者账号&#xff0c;官网地址如下&#xff1a; https://developer.twitter.com/en/portal/dashboard 首先是…

推特开发者 推特 oauth1.0a 授权【推特开发者文档系列12】

关于推特开发者账号 elevated academic 请看此贴&#xff1a; 推特开发者账号申请权限 或 搜索微信公众号 twitterDeveloper 获得帮助 推特授权使用的还是oauth1.0的模式&#xff0c;官网介绍比较麻烦&#xff0c;也很不友好&#xff0c;所以下面将介绍一种简单的授权方法。…

记录一次关于解除推特的冻结

记录一次关于解除推特的冻结 之前因为用QQ邮箱注册的推特&#xff0c;导致在登录的时候需要验证手机号&#xff0c;但是大陆手机后又会提示“由于技术问题&#xff0c;我们无法完成此次请求&#xff0c;请重试”&#xff0c;反正就是大陆手机号不能验证。所以建议大家用手机号…

推特Twitter高级搜索

今天&#xff0c;尝试通过模拟浏览器爬取推特数据。想要爬取包括不同关键词的推文&#xff0c;比如含有“home”或者“school”其中的一个&#xff0c;再或者需要指定发推的时间&#xff0c;那么我们需要用到推特的高级搜索功能。 进入推特高级搜索功能的方法 第一种情况&…

输入账号密码一直转圈登不进去

控制台报sqlException 解决&#xff1a; yml的账号密码要与mysql安装时设置的密码保持一致。&#xff08;一定要记住自己安装mysql时设置的密码是啥&#xff0c;面向百度试图修改mysql密码弄了好一会&#xff0c;突然想起之前安装mysql时记了一篇笔记&#xff0c;幸好笔记写的比…

Centos服务器开机一直在登录页面转圈,然后弹出Give root password for maintenance(or press Control-D to continue):

Centos服务器开机一直在登录页面转圈&#xff0c;然后弹出Give root password for maintenance(or press Control-D to continue): 问题原因&#xff1a;异常关机导致某个逻辑卷丢失或者损坏了 排查思路&#xff1a; 1&#xff0c;转圈时按一下键盘上的f11 、f12、f键即可&am…

电脑微软账户登录一直转圈怎么解决问题

电脑登录微软账户的时候为什么会一直转圈卡住呢&#xff1f;很多朋友不知道如何解决这样的一个问题&#xff0c;今天这里就和大家分享一下解决这个问题的方法吧&#xff0c;如果你不知道如何处理&#xff0c;不妨试试这个步骤。 这里有系统安装的教程可以看看 ​ 1、在电脑桌…

win11微软账户登录一直转圈怎么解决?win11微软账户登录一直转圈

win11微软账户登录一直转圈怎么解决&#xff1f;最近有很多小伙伴们向小编反映说自己的微软账户登录的时候一直在转圈就是进不去&#xff0c;不知道是怎么一回事&#xff0c;就卡在登录界面上。那遇到这个问题应该怎么解决呢&#xff1f;还不清楚的小伙伴们不用担心&#xff0c…

虚拟机进不去登陆界面一直转圈

说明&#xff1a;我的出现的问题是防火墙未关闭 问题示例&#xff1a;虚拟机进不去&#xff0c;如图&#xff1a; 解决方法&#xff1a;在下图界面点击e进入内核 点击向下方向键找到linux16&#xff0c;在最后先空格再补充selinux0&#xff08;意思为关闭selinux&#xff09; 输…

在arxiv 如何引用参考文献

在arxiv上搜到一篇论文后&#xff0c;想在自己的论文中添加引用这篇论文的方法如下&#xff1a; 然后会进入零一个页面 点击完cite后会弹出个弹框&#xff0c;弹框上边有四种格式供使用 点击下边的copy即复制就可以复制到自己的粘贴板上了

写论文一定要会-------中英文参考文献的导出方法

1.如何导出中文参考文献 建议大家结合知网和百度学术,两者对比使用!!因为我的小姐妹在只使用知网的情况下,有几个导出来的参考文献很有问题。 【1】在知网中 打开想要导出的文献界面,点击导出/参考文献 点击复制到剪贴板 将做打印出来的内容放在文档中 【2】在百度学术中…

【观察】新华三:数据中心可组合架构创新,提供多元算力的“最优解”

今天&#xff0c;以ChatGPT为代表的AIGC大模型&#xff0c;已经在国内形成了“海啸效应”&#xff0c;几乎所有的科技公司都在想方设法进入大模型的赛道。背后的核心驱动力&#xff0c;就在于大模型的最大价值在于普遍提升个人生产力&#xff0c;而各行各业的公司都在积极寻找应…

chatgpt赋能python:Python中创建一个复数

Python中创建一个复数 什么是复数 在数学中&#xff0c;我们知道复数是由实数和虚数构成的数。形式上&#xff0c;复数写作abi&#xff0c;其中a是实部&#xff0c;b是虚部&#xff0c;i是表示虚数单位的符号。在科学和工程领域&#xff0c;复数常用于描述交流电路、信号处理…

17行代码用python对接openai的微信对话机器人

文章目录 一、代码部分效果如下二.itchat相关依赖。解压至lib路径即可使用三.项目要在美国或其他服务器内运行 一、代码部分 import itchat import openai from itchat.content import TEXT openai.api_key "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"…