Python RPA 流程自动化快速上手

这篇具有很好参考价值的文章主要介绍了Python RPA 流程自动化快速上手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


RPA,全称为Robotic Process Automation,即机器人流程自动化。
我们可以利用RPA技术将工作中可重复的部分流程化,让机器替我们完成这一工作。
许多程序并不提供方便的接口,我们难以直接通过脚本来批量完成工作任务。

PyAutoGUl允许我们使用Python脚本来控制鼠标和键盘以自动与其他应用程序交互,我们可以用这个库来记录我们的键鼠操作,从而使得计算机像人一样去使用那些应用程序,使人们从繁琐的重复性工作中抽离出来。
我们一起来了解一下PyAutoGUI库的安装及其使用方法。

1. PyAutoGUI库的安装

1.1 系统环境

操作系统:win10 64位
Python版本:Python 3.7.0及其以上

1.2 安装参考

1、使用pip进行安装,pip install pyautogui

使用pip方式安装PyAutoGUI库。

#创建虚拟环境
mkvirtualenv -p python3.10 PythonRPA
#进入虚拟环境
workon PythonRPA
pip install pyautogui
pip list

python rpa,python,rpa,自动化

2、下载后安装

手动下载进行安装,
进入网址:https:/pypi.org/project/PyAutoGUI,点Download files,下载右侧的PyAutoGUI-0.9.38.tar.gz

3、检测安装是否成功

python
import pyautogui

python rpa,python,rpa,自动化

2.鼠标控制函数

在日常生活中经常使用的鼠标动作,都可以使用PyAutoGUI库中的函数来模拟,
那么一起来了解下鼠标坐标的定义及一些鼠标控制函数。

2.1 屏幕分辨率和鼠标位置

先来了解一下鼠标坐标的定义。
PyAutoGUI会获取我们的屏幕大小信息,之后以屏幕的左上角为坐标原点,从坐标原点向右为x轴,从零开始递增;
从坐标原点向下为y轴,从零开始递增。
最左上角的像素点坐标为(0,0)。

如果屏幕分辨率为1920×1080,则最右下角的像素点将为(1919,1079)(因为坐标从0开始而不是1)
我们可以用函数获取屏幕分辨率大小以及鼠标当前坐标:

#屏幕分辨率大小由size()函数作为两个整数的元组返回
pyautogui.size()
#鼠标光标的当前X和Y坐标由position()函数返回
print(pyautogui.position())

此外,也可以通过一些外部软件获取鼠标坐标,如微信的截图功能:
登陆微信后按下 ctrl+a,
鼠标右侧就会展示出当前坐标。

2.2 控制鼠标移动

pyautogui.moveTo([1392,47],duration=1)

此种方式无论鼠标的当前位置在哪,都控制鼠标移动到屏幕坐标轴的(x,y)=(1392,47)的位置上。

pyautogui.moveRel([20,30],duration=1)

而此种方式则先要获取鼠标的当前位置,然后在此位置的基础上向右移动20个像素,向下移动30个像素。
而另一个参数“duration”规定鼠标移动到目标位置所需要的时间,我们会看到鼠标在规定时间内逐渐移动到目标位置,就像我们真正在手动移动鼠标一样。

2.3 控制鼠标点击

我们可以简单的调用click()函数来完成点击,这样会直接使鼠标在当前位置单击鼠标左键一次:

pyautogui.click()

如果想要在特定坐标点单击鼠标,可以用下面的方式,这样就不用再先行移动鼠标:

pyautogui.click([566,193])

在鼠标点击中,有一些值得注意的参数:

参数 可选值 简介
button left, right, middle 决定由鼠标左键、右键、还是滚轮来执行点击操作
clicks 整数 决定鼠标点击次数
interval 数字 与clicks搭配使用,决定每次鼠标点击事件的间隔时间

我们也可以完成对点击动作的分解,“mouseDown”即表示按下鼠标的动作,而”mouseUp”表示抬起鼠标的动作。

pyautogui.mouseDown(button='left', x=243, y=637)
pyautogui.moveTo([707,669],duration = 1)
pyautogui.mouseUp(button='left', x=707, y=669)

另外,其他鼠标点击事件的控制代码如下所示,我们可以直接调用这些函数,以减少大量添加描述参数:

pyautogui.doubleclick()  #控制双击鼠标左键
pyautogui.rightClick()   #控制单击鼠标右键
pyautogui.middleclick()  #控制单击鼠标滚轮键

2.3-02 控制鼠标滚动

通过scroll()函数,我们可以模仿鼠标滚轮的滑动。

pyautogui.scroll(num)

其中num的取值范围是任意整数,num取正数表示滚轮向上滑动,而取负数=数表示滚轮向下滑动。

2.4 控制鼠标拖动

我们还常常需要用鼠标选中一段区域,这时我们就需要用到控制鼠标拖动功能。

pyautogui.moveTo([237,890],duration = 0.5)
pyautogui.dragTo([873,951], duration = 1)
pyautogui.moveTo([237,890],duration = 0.5)
pyautogui.dragRel([20,30],duration = 1)

此种方式和前面控制鼠标移动的原理相同,共有两种控制鼠标拖动的方式,
第一种是控制鼠标拖动到[873,951]坐标位置,
第二种是以当前鼠标位置为起点,向右拖动20个像素的距离,向下拖动30个像素的距离。
“duration”参数依然控制鼠标移动的时间。
“button”等参数仍然适用在这里。

3. 控制键盘

类似的,我们也可以用PyAutoGUI库来模拟键盘输入。

3.1 控制键盘按键

pyautogui.press('a')
pyautogui.press('space')

代码输入参数表示要控制键盘按下键的键值,单独输入字母,如’a’,就相当于按下键盘上的’a’键,一些常用的快捷键列举如下:

按键 说明
enter(或return 或 \n) 回车
esc ESC键
shiftleft,shiftright 左右SHIFT键
altleft, altright 左右ALT键
ctrlleft,ctrlright 左右CTRL键
tab (t) TAB键
backspace, delete BACKSPACE、DELETE键
pageup, pagedown PAGEUP和PAGE DOWN键

3.2 控制键盘输入

pyautogui.typewrite(string)

如果为了输入一段内容,可以表示键盘输入一段字符串内容,如当string的值为‘l love pyautogui’,就表示通过键盘输入一串字符串内容。
例如:

pyautogui.typewrite('l love pyautogui')

“interval”参数可以用来控制每个按键按下间隔的时间。
给参数加上中括号 [],参数string表示键盘上按键的名称,就取代了前面的press方法,同样可以实现控制键盘按键功能。

 pyautogui.typewrite([string])

要注意的是:此方法可以写入英文和数字,但是并不能够写入中文。

3.3 键盘快捷键

pass

3.4 解决键盘输入中文问题

按照正常的输入逻辑,输入中文需要使用输入法输入拼音,再选中需要的正确字符,这样的操作显然太过繁琐。我们可以使用一些库向系统剪切板中写入中文,再调用热键进行粘贴。
操作剪贴板的常见库有win32clipboard和pyperclip两种,我们都可以尝试使用,都很方便。

唯一的区别点可能是pyperclip在打包为exe时,文件体积会更大。
pyperclip:

# -*- coding: utf8 -*-
import pyperclip
import pyautogui

#Python 2 版本pyperclip提供中文复制

#可以把pyperclip的写入与粘贴快捷键封装为一个函数
def paste(foo):
  pyperclip.copy(foo)
  pyautogui.hotkey('ctrl', 'v')

#写入一行文字
foo = u'学而时习之'

#移动到文本框
pyautogui.click(442, 348)
#进行粘贴
paste(foo)

win32clipboard :
注意,要先安装pywin32,win32clipboard包含在其中

pip install pywin32

案例代码:

# -*- coding: utf8 -*-
import pyautogui
import win32clipboard as w
import win32con


#获取剪切板内容
def gettext():
    w.OpenClipboard()
    t = w.GetClipboardData(win32con.CF_TEXT)
    w.CloseClipboard()
    return t

#写入剪切板内容
def settext(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)
    w.CloseClipboard()

#写入中文字
a="我们中国滴汉字CSDN搜代码写注释"

#对中文进行转码,否则会出现乱码
settext(a.encode('gbk')) #这边得编码一下,否则复制出来是乱码的

#移动到文本框
pyautogui.click(442, 348)

#进行粘贴
pyautogui.hotkey('ctrl', 'v')

值得注意的是,用win32clipboard将中文写入剪贴板,需要先进行转码,否则会有乱码出现。文章来源地址https://www.toymoban.com/news/detail-545599.html

到了这里,关于Python RPA 流程自动化快速上手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 自动化指南(繁琐工作自动化)第二版:二、流程控制

    原文:https://automatetheboringstuff.com/2e/chapter2/ 所以,你知道单个指令的基本原理,程序就是一系列指令。但是编程的真正优势不仅仅是像周末跑腿一样一个接一个地运行指令。根据表达式的求值方式,程序可以决定跳过指令,重复指令,或者从几条指令中选择一条来运行。事实

    2023年04月08日
    浏览(61)
  • 【Linux】快速上手自动化构建工具make/makefile

    👀 樊梓慕: 个人主页  🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.什么是make / makefile 2.如何使用make / makefile (1)我们来看makefile如何写? (2)如何与

    2024年02月05日
    浏览(46)
  • 【Python自动化】定时自动采集,并发送微信告警通知,全流程案例讲解!

    目录 一、概要 二、效果演示 三、代码讲解 3.1 爬虫采集行政处罚数据 3.2 存MySQL数据库 3.3 发送告警邮件微信通知 3.4 定时机制 四、总结 您好!我是@马哥python说,一名10年程序猿。 我原创开发了一套定时自动化爬取方案,完整开发流程如下: 采集数据 - 筛选数据 - 存MySQL数据

    2024年02月05日
    浏览(49)
  • 【实战详解】如何快速搭建接口自动化测试框架?Python + Requests

    本文主要介绍如何使用Python语言和Requests库进行接口自动化测试,并提供详细的代码示例和操作步骤。希望能对读者有所启发和帮助。 随着移动互联网的快速发展,越来越多的应用程序采用Web API(也称为RESTful API)作为数据交换的主要方式。针对API进行自动化测试已经变得非

    2024年02月09日
    浏览(57)
  • 如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?

    对于需要调用第三方支付的报名流程进行接口自动化测试,可以通过以下步骤来编写Python代码: 1. 确认API需求 首先,需要确认报名流程的API需求和预期功能。这涉及到对业务需求的理解和API设计的分析。 2. 安装依赖库 在Python程序中,需要安装requests库(用于发送HTTP请求)和

    2024年02月10日
    浏览(71)
  • 自动化之RPA工具之UiPath

    一、地位 2020年6月16日,领先的企业级机器人流程自动化(RPA)软件公司UiPath宣布,公司已被美国财经媒体CNBC评为“颠覆者50强”(Disruptor 50),该年度榜单评出了众多行业中高瞻远瞩、雄心勃勃的私营公司,它们正通过创新改变世界。在获得这项殊荣之前,UiPath刚在《金融

    2024年02月04日
    浏览(49)
  • 【RPA开发】Selenium 实现网页自动化

    开发时有时会遇到网页爬取限制的情况,那么此时可以通过 Selenium 来解决这个问题,因为 Selenium 是模拟浏览器执行网页爬取,相比 Request/API 操作更安全,服务器会完全认为是用户在用浏览器进行操作,如此可以实现网页自动化操作,由于 Selenium 是完全模拟浏览器操作,因此

    2023年04月25日
    浏览(105)
  • 自动化之RPA工具之影刀

    名称:影刀 类型:软件 官网地址(工具使用地址/下载地址):https://www.winrobot360.com/tg/ 简要说明:「影刀RPA」可类比于工厂流水线上的物理机器人 通过自动在任何应用程式上进行鼠标点击、键盘输入、读取信息等操作,帮助解决白领的非主观决策工作,减少重复劳动。产品

    2023年04月15日
    浏览(53)
  • 如何使用RPA自动化人工智能和自动驾驶汽车

    人工智能和自动驾驶汽车是当今科技领域的热门话题。在这篇文章中,我们将探讨如何使用RPA(Robotic Process Automation)自动化人工智能和自动驾驶汽车。 RPA是一种自动化软件技术,它可以自动完成人类工作,提高工作效率。在人工智能和自动驾驶汽车领域,RPA可以帮助我们自动

    2024年02月20日
    浏览(73)
  • 如何利用RPA做UI自动化测试对传统自动化的降维打击

    写在前面 RPA软件一开始的目的并不是自动化测试,而是要把电脑上面几十个、上百个常用的软件,通过机器人流程自动化来打通,通过一个软件来控制几十个、上百个软件。而这个过程,其实覆盖了软件自动化测试。 所谓降维打击,其实是RPA软件,跨界做了软件自动化测试

    2024年02月02日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包