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

Python RPA自動化機器人模擬鼠標鍵盤

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

RPA,全稱為Robotic Process Automation,即機器人流程自動化。

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

許多程序并不提供方便的接口,我們難以直接通過腳本來批量完成工作任務。

PyAutoGUl允許我們使用Python腳本來控制鼠標和鍵盤以自動與其他應用程序交互,我們可以用這個庫來記錄我們的鍵鼠操作,從而使得計算機像人一樣去使用那些應用程序,使人們從繁瑣的重復性工作中抽離出來。

我們一起來了解一下PyAutoGUI庫的安裝及其使用方法。

1. PyAutoGUI庫的安裝

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

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

Python版本:Python 3.7.0及其以上

1.2 安裝參考

1、使用pip進行安裝,pip install pyautogui

使用pip方式安裝PyAutoGUI庫。

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

2、下載后安裝

手動下載進行安裝,

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

3、檢測安裝是否成功

python
import pyautogui

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

在日常生活中經(jīng)常使用的鼠標動作,都可以使用PyAutoGUI庫中的函數(shù)來模擬,

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

2.1 屏幕分辨率和鼠標位置

先來了解一下鼠標坐標的定義。

PyAutoGUI會獲取我們的屏幕大小信息,之后以屏幕的左上角為坐標原點,從坐標原點向右為x軸,從零開始遞增;

從坐標原點向下為y軸,從零開始遞增。

最左上角的像素點坐標為(0,0)。

如果屏幕分辨率為1920×1080,則最右下角的像素點將為(1919,1079)(因為坐標從0開始而不是1)

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

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

此外,也可以通過一些外部軟件獲取鼠標坐標,如微信的截圖功能:

登陸微信后按下 ctrl+a,

鼠標右側(cè)就會展示出當前坐標。

2.2 控制鼠標移動

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

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

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

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

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

2.3 控制鼠標點擊

我們可以簡單的調(diào)用click()函數(shù)來完成點擊,這樣會直接使鼠標在當前位置單擊鼠標左鍵一次:

pyautogui.click()

如果想要在特定坐標點單擊鼠標,可以用下面的方式,這樣就不用再先行移動鼠標:

pyautogui.click([566,193])

在鼠標點擊中,有一些值得注意的參數(shù):

參數(shù)可選值簡介
buttonleft, right, middle決定由鼠標左鍵、右鍵、還是滾輪來執(zhí)行點擊操作
clicks整數(shù)決定鼠標點擊次數(shù)
interval數(shù)字與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)

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

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

2.4 控制鼠標滾動

通過scroll()函數(shù),我們可以模仿鼠標滾輪的滑動。

pyautogui.scroll(num)

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

2.5 控制鼠標拖動

我們還常常需要用鼠標選中一段區(qū)域,這時我們就需要用到控制鼠標拖動功能。

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”參數(shù)依然控制鼠標移動的時間。

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

3. 控制鍵盤

類似的,我們也可以用PyAutoGUI庫來模擬鍵盤輸入。

3.1 控制鍵盤按鍵

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

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

按鍵說明
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)容,如當string的值為‘l love pyautogui’,就表示通過鍵盤輸入一串字符串內(nèi)容。

例如:

pyautogui.typewrite('l love pyautogui')

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

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

pyautogui.typewrite([string])

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

3.3 鍵盤快捷鍵

pass

3.4 解決鍵盤輸入中文問題

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

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

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

pyperclip:

# -*- coding: utf8 -*-
import pyperclip
import pyautogui
#Python 2 版本pyperclip提供中文復制
#可以把pyperclip的寫入與粘貼快捷鍵封裝為一個函數(shù)
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
#獲取剪切板內(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="我們中國滴漢字CSDN搜代碼寫注釋"
#對中文進行轉(zhuǎn)碼,否則會出現(xiàn)亂碼
settext(a.encode('gbk')) #這邊得編碼一下,否則復制出來是亂碼的
#移動到文本框
pyautogui.click(442, 348)
#進行粘貼
pyautogui.hotkey('ctrl', 'v')

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

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

相關(guān)文章

  • python3 如何讀取python2的npy文件

    python3 如何讀取python2的npy文件

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

    安裝pyhttpx解決ImportError: DLL load failed錯誤

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

    Python入門教程之if語句的用法

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

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

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

    Opencv+Python實現(xiàn)圖像運動模糊和高斯模糊的示例

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

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

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

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

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

    Django 登錄注冊的實現(xiàn)示例

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

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

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

    Python中jieba庫的使用方法

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

最新評論