python应用程序设计 易建勋,python应用程序框架

这篇文章主要介绍了python应用程序设计 易建勋电子版,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

请添加图片描述

前言

自动化操作 是一门可以 提高工作效率 简化工作流程 的重要手段同义词

而使用 Python 编程语言进行自动化操作应用程序,是极其方便的```*``Python 为我们提供了许多强大的工具和库,使得我们能够轻松地控制桌面应用程序或Windows上的GUI应用程序文字生成视频小程序

本文将深入探讨Python 在自动化操作应用程序方面的应用,介绍关键的库和工具,以及实际案例和技巧,以其帮助读者更好地理解和应用自动化操作的概念。

重复的工作都应该应用自动化操作。好处有几个:

  • 提高工作效率
  • 减少人为错误
  • 实现批量处理
  • 增强任务可靠性

本文着重介绍 自动化操作应用程序

更多的是做一个介绍,后续再更新一些代码上和比较细致的操作。(本文无代码,放心观看)

关于 自动化操作浏览器,可以移步这里查-- 🎃🎃妙用Selenium

干货来袭~

干货来袭~

干货来袭~

知识点📖📖

名称解释
uiautomation自动化控制Windows应用程序的Python
pywin32是Win32(PYWIN32)扩展的 Python 的reamde文件,可访问Python的许多Windows API。
pyautogui模拟鼠标和键盘操作的Python
Spy++.exeSPYXX.EXE是一个基于 Win32 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。
inspect.exeSpy++.exe 差不多

关于 Spy++.exeinspect.exe 工具的使用,参考这篇文章的介绍:

Python中最全的窗口操作,如窗口最大化、最小化、窗口置顶、获取缩放比例等

专栏脉络



🎃🎃妙用Selenium系列文章  

🐱‍🏍🐱‍🏍uiautomation 系列文章

pyautogui 系列文章

  • 待更新【pyautogui】入门指南:基础概念和最佳实践
  • 待更新【pyautogui】案例之小程序自动化(查询)

Python自动化 多工具系列

  • 待更新 【mitmproxy + pyautogui】Python自动化之 自动化爬虫某乎
  • 待更新 暂时想不到,后续再做补充。

什么是自动化

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

以上是百度百科对 自动化 的释义,在这里使用的是 Python自动化操作


Python自动化操作 是指使用Python编程语言来实现自动化操作的过程。

Python 提供了丰富的库和工具,使得开发者可以轻松地编写自动化脚本来完成各种任务。

在自动化操作方面,Python可以用于控制桌面应用程序或Windows上的GUI应用程序,进行网页操作,执行文件处理和系统管理任务等。

通过使用Python自动化操作,可以简化繁琐的工作流程,提高工作效率,减少人工错误,并为更复杂的任务提供可扩展性和定制性。

Python自动化的种类

在使用Python进行自动化操作时,笔者将其分为两种主要情况:

  1. 自动化操作浏览器
  2. 自动化操作应用程序

这两种自动化操作的目标和方法略有不同,因为应用程序和浏览器具有不同的界面和交互方式。

应对这两种不同的情况需要选择适当的工具和库,根据具体需求和场景选择合适的自动化方法,并开发出相应的自动化脚本。


1. 自动化操作浏览器

本文暂不介绍。

这该类型中,可以使用Python来自动化控制Web浏览器,进行各种网页操作。

可以使用Python中的 Selenium、Puppeteer、Puppeteer、Splinter 等框架来模拟用户在浏览器中的行为,如打开网页、填写表单、点击按钮、截取页面内容、数据采集、网页测试等。


在这一块,笔者比较熟悉。特别是在使用到 Selenium 时候,可谓是炉火纯青。

关于我的 Selenium专栏文章,点击直达 – 🎃🎃妙用Selenium

在这里笔者推荐使用 Selenium,因为熟悉。

2. 自动化操作应用程序

本文的重点。

在这一类型中,可以使用Python来自动化控制桌面应用程序或Windows上的GUI应用程序。

这包括识别和操作应用程序的UI元素模拟鼠标和键盘操作等。可以使用库如uiautomationwin32guipyautogui来实现这种自动化。

当然,也还有其它优秀的库,但是这三个库基本可以覆盖该类型的操作。所以只介绍这几个库。

关键库和工具的深入研究

这里介绍几个关键的Python库,以帮助读者更好地理解和应用自动化操作应用程序的技术。

这几个库各有优点,若结合使用,效果更佳!

读者若用心就会发现,这里介绍的 uiautomationpyautogui 几乎是重合的。

那为什么这里要介绍这两个呢?

  • 在某些情况下,使用uiautomation无法定位到Windows窗口,无法定位到窗口意味着无法操作(应用程序不支持UIAutomation
  • 这个时候就需要借助 win32gui 去定位窗口。然后再借助 pyautogui的 坐标定位去点击等操作;

1. uiautomation

关于uiautomation的一些使用,可以参考这里 – 🐱‍🏍🐱‍🏍uiautomation

uiautomation是一个用于自动化控制Windows应用程序的Python库,它基于Microsoft UI Automation技术,提供了访问和操作应用程序的UI元素的能力。

uiautomation可以识别和操作窗口、按钮、文本框等UI控件,模拟鼠标和键盘操作,并提供了许多辅助功能,如查找元素、获取属性、监控事件单等等。

通过uiautomation,我们可以编写脚本来实现复杂的自动化任务,如表单填写、界面操作和数据提取。

它可以与各种Windows应用程序进行交互,包括桌面应用程序、Windows商店应用程序等。

2. win32gui

介绍看起来头疼,它的作用主要在于获取窗口的句柄并定位窗口,或者将窗口展示在最前端等~

win32gui是Python的一个标准库,用于操作Windows上的GUI应用程序,提供了对Windows窗口和控件的访问和操作功能。它使用了Windows API来实现与窗口系统的交互。

适用于对Windows上的原生GUI应用程序进行自动化操作。win32gui可以获取窗口的句柄、标题、位置等信息,可以模拟鼠标和键盘操作,包括发送消息、点击按钮、输入文本等。

3. pyautogui

pyautogui是一个用于模拟鼠标和键盘操作的Python库。

它可以控制鼠标的移动和点击(坐标定位),模拟键盘的按键和组合键操作。pyautogui还提供了截屏、获取屏幕信息、检测图像等功能。

它不仅适用于Windows系统,也适用于其他操作系统,如macOSLinux

pyautogui是一个跨平台的自动化库,可以用于各种自动化任务,包括图形界面测试、UI操作、游戏自动化等。

4. Spy++.exe & inspect.exe

在使用uiautomationwin32gui时候,需要用到这两个 Spy++.exeinspect.exe 工具来辅助去定位到目标窗口。

关于这两个具的使用,参考下面这篇文章的介绍:

实际案例和示例

在本节中,我们将通过实际案例和示例代码来展示如何使用Python进行自动化操作应用程序。这些案例将涵盖不同的应用场景,包括控制桌面应用程序、模拟鼠标和键盘操作,以及UI元素的识别和操作。通过这些实例,读者将学习到如何应用前面提到的关键库和工具,实现自己的自动化操作应用程序任务。

这里介绍了几个实际工作中使用到的案例,后面看是否需要补充代码。

集大成者案例

这是一个类爬虫项目,主要获取账号登录后的Cookies,然后再使用Cookies去请求数据;
因为逆向 Cookies难度太大,同时账号也很多,所以这里使用Python自动化去获取 Cookies

该案例糅合了 Selenium图片识别Js模拟人为滑动滑块loguru日志记录Pandas处理Excel数据等等;

  • 可以参考以下流程图。
识别滑块距离
滑动成功
滑动不成功
超过3次
1. 登录网站
2. 登录页面
3. 出现滑块验证码
4. 模拟滑动
8. 刷新验证码
9. 重新登录网站
6. 生成二级页面token
7. 保存到excel
5. 获取首页token

这里使用视频展示运行效果:

  • CSDN视频正在审核~

Selenium登录网站获取Cookies(过滑块 so easy!!!

案例一

使用 uiautomation

  • 使用uiautomation库来定位和操作Windows应用程序的UI元素。

  • 使用uiautomation库模拟鼠标点击、拖动和键盘输入的操作。

使用这个库可以实现在特定的应用程序中自动化进行复杂的UI交互,例如自动填写表单、点击特定按钮等。

案例二

uiautomation无法定位到窗口时候,使用pyautogui

pyautogui无需定位窗口,根据坐标位置就可以进行点击,然后再操作键盘操作,就能进行输入等操作。

使用pyautogui

  • 完成 案例一 的全部操作;

案例三

使用pyautoguios/subprocess模块:

  • 使用pyautogui库模拟鼠标和键盘操作;
  • 使用ossubprocess模块执行系统命令或外部程序。

结合使用这些库可以实现自动化进行系统级操作的任务,例如自动运行命令行程序、操作文件和目录等。

案例四

使用 win32guipyautogui

  • 使用win32gui库来查找和控制Windows窗口的属性和状态;
  • 使用pyautogui库模拟鼠标和键盘操作;
  • 结合使用这两个库可以实现在特定的窗口中自动化进行GUI操作,例如自动点击窗口中的按钮、输入文本等。

案例五

使用mitmproxy + uiautomation/pyautogui

  • mitmproxy监听数据包
  • uiautomation/pyautogui左自动化操作

两者配合可以做一个不停歇的爬虫程序。

案例六

uiautomation

  • 群发WeChat消息
  • 添加好友等

案例七

根据你的实际来。

最佳实践和技巧

代码示例后续再写文章补充,这里占一个坑位

代码示例后续再写文章补充,这里占一个坑位

代码示例后续再写文章补充,这里占一个坑位

在本节中,我们将分享一些最佳实践和技巧,帮助读者提高自动化操作应用程序的效率和准确性。

这些技巧包括异常处理、优化等待时间、定位UI元素的策略等。通过遵循这些实践和技巧,读者将能够更好地应用Python进行自动化操作应用程序,提高工作效率和减少错误。

Python中进行自动化操作时,以下是一些最佳实践和技巧,可以帮助你提高效率和准确性:

  1. 选择合适的自动化工具和库:根据你的需求和场景,选择适合的自动化工具和库。例如,对于网页自动化操作,可以使用Selenium;对于桌面应用程序,可以使用uiautomationpyautogui等。
  2. 使用等待机制:在进行自动化操作时,应该考虑到应用程序的加载和响应时间。使用适当的等待机制,例如显式等待或隐式等待,以确保在操作之前等待页面或应用程序加载完全。
  3. 准确定位元素:对于网页自动化操作,准确地定位元素是非常重要的。使用合适的定位策略,如Selenium使用ID、类名、XPath或CSS选择器,来定位元素。uiautomation使用ClassNameName来定位元素。避免使用依赖于位置的定位方式,以提高脚本的稳定性。
  4. 处理异常和错误:在自动化操作中,应该合理处理异常和错误情况。使用try-except语句捕获可能发生的异常,并编写适当的错误处理代码。这样可以增加脚本的健壮性,并提供更好的错误信息和日志记录。
  5. 使用日志记录:在自动化操作中添加日志记录功能,以便跟踪和调试脚本的执行过程。使用Python内置的logging模块或第三方库loguru,记录关键事件和操作,以及错误和异常信息。
  6. 模块化和重用代码:将自动化操作的代码进行模块化和重用,以便于维护和扩展。将通用的功能封装成函数或类,可以在不同的自动化任务中重复使用,提高代码的复用性和可维护性。
  7. 编写清晰的文档和注释:为自动化脚本编写清晰的文档和注释,说明脚本的目的、逻辑和使用方法。这样可以帮助其他人理解和使用你的脚本,并在需要时进行修改和维护。
  8. 进行测试和调试:在编写自动化脚本时,进行充分的测试和调试是至关重要的。使用单元测试框架如pytest或unittest,确保代码的正确性和稳定性。使用调试工具和技术,如断点调试和日志输出,帮助定位和解决问题。
  9. 快捷键唤醒程序:快速唤醒程序或脚本,不需要手动打开应用程序或通过复杂的步骤进行操作。

遵循以上最佳实践和技巧,可以提高Python自动化操作的效率和质量,减少错误和问题的发生,并保护系统和数据的安全。

潜在挑战和解决方案

在实际应用中,自动化操作应用程序可能会遇到一些挑战,如应用程序界面的变动和复杂操作场景。来讨论一下这些潜在挑战。通过了解这些挑战和解决方案,读者将能够更好地应对各种自动化操作应用程序的情况,确保自动化任务的稳定性和可靠性。

以下是一些常见的挑战以及相应的解决方案:

  1. UI元素的变动:应用程序的UI元素可能会随着版本更新或布局调整而发生变化,导致自动化操作失效。

    解决方案:使用稳定的UI定位策略,例如使用唯一的属性或层级结构路径来定位UI元素,而不是依赖于固定的坐标或索引。

  2. 异步操作和延迟: 一些操作可能需要一定的时间才能完成,或者涉及异步操作,导致自动化脚本的执行速度与应用程序的响应速度不匹配。

    解决方案:使用适当的延迟,等待操作完成或等待应用程序响应。可以使用time.sleep()函数来添加延迟,或者使用等待特定条件的方法,如等待特定元素出现或消失。

  3. 不同操作系统和环境的兼容性:不同操作系统和环境之间可能存在差异,导致自动化脚本在某些环境下无法正常工作。

    解决方案:是编写可移植的代码,使用跨平台的自动化库,如pyautogui,并进行适当的环境配置和测试。

  4. 异常处理和错误处理:自动化脚本在执行过程中可能会遇到各种异常和错误,如元素定位失败、网络连接问题等。

    解决方案:是使用适当的异常处理机制,例如try-except语句,来捕获和处理异常情况,并提供相应的错误处理逻辑。

  5. 性能和稳定性:自动化操作可能需要处理大量的数据和复杂的任务,可能会面临性能和稳定性方面的挑战。

    解决方案:是优化代码,使用合适的算法和数据结构,避免资源泄漏,进行性能测试和压力测试,以确保自动化脚本的性能和稳定性。

  6. 安全性和权限限制:某些自动化操作可能涉及敏感数据或需要特定的权限访问系统资源,可能受到安全性和权限限制的限制。

    解决方案:是确保脚本的安全性,使用合适的身份验证和授权机制,并遵守相关的安全和隐私规定。

  7. 图像识别问题: 当无法使用元素定位方法时,可能需要使用图像识别来定位和操作界面元素。

    解决方案:使用图像识别库,如OpenCV,结合模板匹配或特征提取等技术,来识别和定位目标界面元素。创建适当的图像模板,并使用算法来匹配和定位目标元素。

  8. 维护和扩展性:随着应用程序或系统的变化,自动化脚本需要进行维护和更新,以适应新的需求和变化。


总结🎈🎈

通过本文的介绍,我们深入了解了Python在自动化操作应用程序中的重要性和应用价值。

我们了解了自动化操作应用程序的概念和范围,并介绍了关键的库和工具,如uiautomationwin32guipyautogui。我们通过实际案例和示例代码展示了Python在自动化操作应用程序中的实际应用。

最后,我们分享了最佳实践和技巧,讨论了潜在挑战和解决方案。让我们深入研究这些模块和技术,掌握Python自动化操作应用程序的精髓,提升工作效率,开创更加智能和高效的工作方式。

后话

本次分享到此结束,

see you~~🐱‍🏍🐱‍🏍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值