欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python RPA自動(dòng)化機(jī)器人模擬鼠標(biāo)鍵盤

 更新時(shí)間:2023年02月16日 09:13:20   作者:代碼寫注釋  
這篇文章主要介紹了Python RPA自動(dòng)化機(jī)器人模擬鼠標(biāo)鍵盤,RPA,全稱為Robotic Process Automation,即機(jī)器人流程自動(dòng)化。我們可以利用RPA技術(shù)將工作中可重復(fù)的部分流程化,讓機(jī)器替我們完成這一工作

RPA,全稱為Robotic Process Automation,即機(jī)器人流程自動(dòng)化。

我們可以利用RPA技術(shù)將工作中可重復(fù)的部分流程化,讓機(jī)器替我們完成這一工作。

許多程序并不提供方便的接口,我們難以直接通過(guò)腳本來(lái)批量完成工作任務(wù)。

PyAutoGUl允許我們使用Python腳本來(lái)控制鼠標(biāo)和鍵盤以自動(dòng)與其他應(yīng)用程序交互,我們可以用這個(gè)庫(kù)來(lái)記錄我們的鍵鼠操作,從而使得計(jì)算機(jī)像人一樣去使用那些應(yīng)用程序,使人們從繁瑣的重復(fù)性工作中抽離出來(lái)。

我們一起來(lái)了解一下PyAutoGUI庫(kù)的安裝及其使用方法。

1. PyAutoGUI庫(kù)的安裝

1.1 系統(tǒng)環(huán)境

操作系統(tǒng):win10 64位

Python版本:Python 3.7.0及其以上

1.2 安裝參考

1、使用pip進(jìn)行安裝,pip install pyautogui

使用pip方式安裝PyAutoGUI庫(kù)。

#創(chuàng)建虛擬環(huán)境
mkvirtualenv -p python3.10 PythonRPA
#進(jìn)入虛擬環(huán)境
workon PythonRPA
pip install pyautogui
pip list

2、下載后安裝

手動(dòng)下載進(jìn)行安裝,

進(jìn)入網(wǎng)址:傳送門,點(diǎn)Download files,下載右側(cè)的PyAutoGUI-0.9.38.tar.gz

3、檢測(cè)安裝是否成功

python
import pyautogui

2.鼠標(biāo)控制函數(shù)

在日常生活中經(jīng)常使用的鼠標(biāo)動(dòng)作,都可以使用PyAutoGUI庫(kù)中的函數(shù)來(lái)模擬,

那么一起來(lái)了解下鼠標(biāo)坐標(biāo)的定義及一些鼠標(biāo)控制函數(shù)。

2.1 屏幕分辨率和鼠標(biāo)位置

先來(lái)了解一下鼠標(biāo)坐標(biāo)的定義。

PyAutoGUI會(huì)獲取我們的屏幕大小信息,之后以屏幕的左上角為坐標(biāo)原點(diǎn),從坐標(biāo)原點(diǎn)向右為x軸,從零開始遞增;

從坐標(biāo)原點(diǎn)向下為y軸,從零開始遞增。

最左上角的像素點(diǎn)坐標(biāo)為(0,0)。

如果屏幕分辨率為1920×1080,則最右下角的像素點(diǎn)將為(1919,1079)(因?yàn)樽鴺?biāo)從0開始而不是1)

我們可以用函數(shù)獲取屏幕分辨率大小以及鼠標(biāo)當(dāng)前坐標(biāo):

#屏幕分辨率大小由size()函數(shù)作為兩個(gè)整數(shù)的元組返回
pyautogui.size()
#鼠標(biāo)光標(biāo)的當(dāng)前X和Y坐標(biāo)由position()函數(shù)返回
print(pyautogui.position())

此外,也可以通過(guò)一些外部軟件獲取鼠標(biāo)坐標(biāo),如微信的截圖功能:

登陸微信后按下 ctrl+a,

鼠標(biāo)右側(cè)就會(huì)展示出當(dāng)前坐標(biāo)。

2.2 控制鼠標(biāo)移動(dòng)

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

此種方式無(wú)論鼠標(biāo)的當(dāng)前位置在哪,都控制鼠標(biāo)移動(dòng)到屏幕坐標(biāo)軸的(x,y)=(1392,47)的位置上。

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

而此種方式則先要獲取鼠標(biāo)的當(dāng)前位置,然后在此位置的基礎(chǔ)上向右移動(dòng)20個(gè)像素,向下移動(dòng)30個(gè)像素。

而另一個(gè)參數(shù)“duration”規(guī)定鼠標(biāo)移動(dòng)到目標(biāo)位置所需要的時(shí)間,我們會(huì)看到鼠標(biāo)在規(guī)定時(shí)間內(nèi)逐漸移動(dòng)到目標(biāo)位置,就像我們真正在手動(dòng)移動(dòng)鼠標(biāo)一樣。

2.3 控制鼠標(biāo)點(diǎn)擊

我們可以簡(jiǎn)單的調(diào)用click()函數(shù)來(lái)完成點(diǎn)擊,這樣會(huì)直接使鼠標(biāo)在當(dāng)前位置單擊鼠標(biāo)左鍵一次:

pyautogui.click()

如果想要在特定坐標(biāo)點(diǎn)單擊鼠標(biāo),可以用下面的方式,這樣就不用再先行移動(dòng)鼠標(biāo):

pyautogui.click([566,193])

在鼠標(biāo)點(diǎn)擊中,有一些值得注意的參數(shù):

參數(shù)可選值簡(jiǎn)介
buttonleft, right, middle決定由鼠標(biāo)左鍵、右鍵、還是滾輪來(lái)執(zhí)行點(diǎn)擊操作
clicks整數(shù)決定鼠標(biāo)點(diǎn)擊次數(shù)
interval數(shù)字與clicks搭配使用,決定每次鼠標(biāo)點(diǎn)擊事件的間隔時(shí)間

我們也可以完成對(duì)點(diǎn)擊動(dòng)作的分解,“mouseDown”即表示按下鼠標(biāo)的動(dòng)作,而”mouseUp”表示抬起鼠標(biāo)的動(dòng)作。

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

另外,其他鼠標(biāo)點(diǎn)擊事件的控制代碼如下所示,我們可以直接調(diào)用這些函數(shù),以減少大量添加描述參數(shù):

pyautogui.doubleclick()  #控制雙擊鼠標(biāo)左鍵
pyautogui.rightClick()   #控制單擊鼠標(biāo)右鍵
pyautogui.middleclick()  #控制單擊鼠標(biāo)滾輪鍵

2.4 控制鼠標(biāo)滾動(dòng)

通過(guò)scroll()函數(shù),我們可以模仿鼠標(biāo)滾輪的滑動(dòng)。

pyautogui.scroll(num)

其中num的取值范圍是任意整數(shù),num取正數(shù)表示滾輪向上滑動(dòng),而取負(fù)數(shù)=數(shù)表示滾輪向下滑動(dòng)。

2.5 控制鼠標(biāo)拖動(dòng)

我們還常常需要用鼠標(biāo)選中一段區(qū)域,這時(shí)我們就需要用到控制鼠標(biāo)拖動(dòng)功能。

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)

此種方式和前面控制鼠標(biāo)移動(dòng)的原理相同,共有兩種控制鼠標(biāo)拖動(dòng)的方式,

第一種是控制鼠標(biāo)拖動(dòng)到[873,951]坐標(biāo)位置,

第二種是以當(dāng)前鼠標(biāo)位置為起點(diǎn),向右拖動(dòng)20個(gè)像素的距離,向下拖動(dòng)30個(gè)像素的距離。

“duration”參數(shù)依然控制鼠標(biāo)移動(dòng)的時(shí)間。

“button”等參數(shù)仍然適用在這里。

3. 控制鍵盤

類似的,我們也可以用PyAutoGUI庫(kù)來(lái)模擬鍵盤輸入。

3.1 控制鍵盤按鍵

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

代碼輸入?yún)?shù)表示要控制鍵盤按下鍵的鍵值,單獨(dú)輸入字母,如’a’,就相當(dāng)于按下鍵盤上的’a’鍵,一些常用的快捷鍵列舉如下:

按鍵說(shuō)明
enter(或return 或 \n)回車
escESC鍵
shiftleft,shiftright左右SHIFT鍵
altleft, altright左右ALT鍵
ctrlleft,ctrlright左右CTRL鍵
tab (t)TAB鍵
backspace, deleteBACKSPACE、DELETE鍵
pageup, pagedownPAGEUP和PAGE DOWN鍵

3.2 控制鍵盤輸入

pyautogui.typewrite(string)

如果為了輸入一段內(nèi)容,可以表示鍵盤輸入一段字符串內(nèi)容,如當(dāng)string的值為‘l love pyautogui’,就表示通過(guò)鍵盤輸入一串字符串內(nèi)容。

例如:

pyautogui.typewrite('l love pyautogui')

“interval”參數(shù)可以用來(lái)控制每個(gè)按鍵按下間隔的時(shí)間。

給參數(shù)加上中括號(hào) [],參數(shù)string表示鍵盤上按鍵的名稱,就取代了前面的press方法,同樣可以實(shí)現(xiàn)控制鍵盤按鍵功能。

pyautogui.typewrite([string])

要注意的是:此方法可以寫入英文和數(shù)字,但是并不能夠?qū)懭胫形摹?/p>

3.3 鍵盤快捷鍵

pass

3.4 解決鍵盤輸入中文問(wèn)題

按照正常的輸入邏輯,輸入中文需要使用輸入法輸入拼音,再選中需要的正確字符,這樣的操作顯然太過(guò)繁瑣。我們可以使用一些庫(kù)向系統(tǒng)剪切板中寫入中文,再調(diào)用熱鍵進(jìn)行粘貼。

操作剪貼板的常見庫(kù)有win32clipboard和pyperclip兩種,我們都可以嘗試使用,都很方便。

唯一的區(qū)別點(diǎn)可能是pyperclip在打包為exe時(shí),文件體積會(huì)更大。

pyperclip:

# -*- coding: utf8 -*-
import pyperclip
import pyautogui
#Python 2 版本pyperclip提供中文復(fù)制
#可以把pyperclip的寫入與粘貼快捷鍵封裝為一個(gè)函數(shù)
def paste(foo):
  pyperclip.copy(foo)
  pyautogui.hotkey('ctrl', 'v')
#寫入一行文字
foo = u'學(xué)而時(shí)習(xí)之'
#移動(dòng)到文本框
pyautogui.click(442, 348)
#進(jìn)行粘貼
paste(foo)

win32clipboard :

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

pip install pywin32

案例代碼:

# -*- coding: utf8 -*-
import pyautogui
import win32clipboard as w
import win32con
#獲取剪切板內(nèi)容
def gettext():
    w.OpenClipboard()
    t = w.GetClipboardData(win32con.CF_TEXT)
    w.CloseClipboard()
    return t
#寫入剪切板內(nèi)容
def settext(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)
    w.CloseClipboard()
#寫入中文字
a="我們中國(guó)滴漢字CSDN搜代碼寫注釋"
#對(duì)中文進(jìn)行轉(zhuǎn)碼,否則會(huì)出現(xiàn)亂碼
settext(a.encode('gbk')) #這邊得編碼一下,否則復(fù)制出來(lái)是亂碼的
#移動(dòng)到文本框
pyautogui.click(442, 348)
#進(jìn)行粘貼
pyautogui.hotkey('ctrl', 'v')

值得注意的是,用win32clipboard將中文寫入剪貼板,需要先進(jìn)行轉(zhuǎn)碼,否則會(huì)有亂碼出現(xiàn)。

到此這篇關(guān)于Python RPA自動(dòng)化機(jī)器人模擬鼠標(biāo)鍵盤的文章就介紹到這了,更多相關(guān)Python RPA自動(dòng)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3 如何讀取python2的npy文件

    python3 如何讀取python2的npy文件

    這篇文章主要介紹了python3 讀取python2的npy文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤

    安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤

    這篇文章主要為大家介紹了安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python入門教程之if語(yǔ)句的用法

    Python入門教程之if語(yǔ)句的用法

    這篇文章主要介紹了Python入門教程之if語(yǔ)句的用法,是Python入門的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法

    完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法

    這篇文章主要介紹了完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Opencv+Python實(shí)現(xiàn)圖像運(yùn)動(dòng)模糊和高斯模糊的示例

    Opencv+Python實(shí)現(xiàn)圖像運(yùn)動(dòng)模糊和高斯模糊的示例

    今天小編就為大家分享一篇關(guān)于Opencv+Python實(shí)現(xiàn)圖像運(yùn)動(dòng)模糊和高斯模糊的示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • python matplotlib.pyplot.plot()參數(shù)用法

    python matplotlib.pyplot.plot()參數(shù)用法

    這篇文章主要介紹了python matplotlib.pyplot.plot()參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python讀寫ini文件示例(python讀寫文件)

    python讀寫ini文件示例(python讀寫文件)

    項(xiàng)目用到數(shù)據(jù)庫(kù),多個(gè)地方使用,不能硬編碼。ython支持ini文件的讀取,就在項(xiàng)目中使用了ini文件,下面是示例
    2014-03-03
  • Django 登錄注冊(cè)的實(shí)現(xiàn)示例

    Django 登錄注冊(cè)的實(shí)現(xiàn)示例

    本文主要介紹了Django 登錄注冊(cè)的實(shí)現(xiàn)示例,這是做網(wǎng)頁(yè)登錄和注冊(cè)基本上都是必要一步,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 深入Python函數(shù)編程的一些特性

    深入Python函數(shù)編程的一些特性

    這篇文章主要介紹了更為深入的Python函數(shù)編程的一些特性,本文來(lái)自于IBM官方開發(fā)者技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python中jieba庫(kù)的使用方法

    Python中jieba庫(kù)的使用方法

    jieba庫(kù)是一款優(yōu)秀的 Python 第三方中文分詞庫(kù),本文主要介紹了Python中jieba庫(kù)的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評(píng)論