RPA Python
RPA for Python 簡單而強大的 API 讓機器人流程自動化變得有趣!您可以使用它快速自動化網站、桌面應用程序或命令行上重復的耗時任務。
相關鏈接
安裝(windows)
- 將下載好的
TagUI v6.46 for Windows
解壓放在C:\Users\PX_Lenovo\AppData\Roaming
文件夾下 - 安裝OpenJDK for Windows
- 下載chrome
- 安裝python
- 安裝pip
- 下載pip源碼包:https://pypi.org/project/pip/#files
- 下載
pip-22.0.4.tar.gz
不是*.whl
文件 - 解壓該壓縮包
- 通過
命令行
或者windows powershell
進入解壓后的目錄 - 執行
python setup.py install
- 在環境變量
Path
中加入C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts
pip的安裝目錄 - 可以使用pip了,執行
pip list
測試一些
- 執行命令
pip install rpa
使用Jupyter運行
安裝Jupyter
windows powershell
執行pip install jupyterlab
- 安裝完成后再
windows powershell
執行jupyter notebook
,會自動的打開一個網頁,在網頁上編輯代碼
使用Jupyter
啟動Jupyter,盡量新建一個空文件夾啟動,因為從powershell 啟動后,Jupyter會自動視該文件夾為工作目錄。
在網頁上點擊new,創建python腳本:
一個In
中可以寫多行代碼,也可以寫一行,運行按鈕可以單獨執行某個In
,shift+enter
添加新的In
:
鼠標可以選擇單個In
來執行,比如import
一次后就不必再import
,類似init
也只需要一次,除非重啟內核(界面上的刷新按鈕)。
第一次執行,一定要跑import
和init
,例如圖中只需要執行一次In[1]
與In[2]
,In[3]
可以多次執行。
練習
基礎知識
這里的r
是import rpa as r
r.init( visual_automation = True, chrome = false)
這個是可以這樣寫r.init()
,visual_automation = True
表示動畫可見。
r.url()
要輸入一個網址,例如:r.url('https://www.baidu.com/')
r.type( xpath, words)用法1
xpath表示輸入的網頁xpath,words表示輸入的是什么內容。xpath獲取方式如下,谷歌瀏覽器按F12,然后在想要查看位置右鍵檢查
:
r.type( image, words)用法2
例如:r.type('message_box.png', 'Hi Gillian,[enter]This is...')
這個該網頁或者圖的某一部位的圖,它會在該網頁(或其他)找到message_box.png
圖所指示的位置,在該位置輸入數據。其中[enter]
表示按下Enter按鍵。
r.read( DOM/XPath/Region/Image)
**注:DOM 和 XPath 標識符僅適用於 Chrome/Edge。要自動化其他瀏覽器,請使用點/區域和圖像標識符。**
# DOM
這匹配網頁的 DOM(文檔對象模型)中的元素,匹配id、名稱、類屬性或元素本身的文本。
`click Getting started`
# XPath
這與網頁中元素的XPath匹配。這是一種更明確、更強大的定位 Web 元素的方式。
**注:您也可以使用 CSS 選擇器代替 XPath,但首選 XPath。**
`click //body/div[1]/nav/div/div[1]/a`
# Point
點擊屏幕中的點。
`click (200,500)`
這與屏幕上距屏幕左側 200 像素和距屏幕頂部 500 像素的點相匹配。
# Region
某個區域。
`read (300,400)-(500,550) to some-variable`
這與兩點 (300,400) 和 (500,550) 之間形成的矩形相匹配。
# Image
點擊某個圖片,實際上是利用圖形識別完成。
`click button.png`
這匹配屏幕上看起來類似於圖像文件的任何區域button.png(在流程的文件夾中)。您首先需要截取button.png. 這使用了視覺自動化。
`click image/button.png`
這允許您button.png在image文件夾中查找。
這里可以通過OCR讀取圖片中的文字,例如:
print(r.read('//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]'))
print(r.read('pdf_window.png'))
r.snap( DOM/XPath/Region/Image/page, filename)
這個表示截圖,前面表示從哪里截圖,后面表示保存的路徑和文件名。例如:
r.snap('page', 'TEMP/results.png')
支持的按鍵如下:
[shift] [ctrl] [alt] [win] [cmd] [enter]
[space] [tab] [esc] [backspace] [delete] [clear]
[up] [down] [left] [right] [pageup] [pagedown]
[home] [end] [insert] [f1] .. [f15]
[printscreen] [scrolllock] [pause] [capslock] [numlock]
網頁搜索采集數據
無
點擊特定元素
無
使用按鍵打開應用
r.keyboard('[win]r')
r.keyboard('explorer[enter]')
r.type('TEMP/explorer_add_bar.png', 'C:\\Users\\PX_Lenovo\\Documents\\TEMP[enter]')
使用鼠標打開右鍵打開文件
r.keyboard('[win]r')
r.keyboard('explorer[enter]')
r.type('TEMP/explorer_add_bar.png', 'C:\\Users\\PX_Lenovo\\Pictures[enter]')
r.click('TEMP/window_max_bt.png');
r.hover('TEMP/aim_pic_name.png')
r.rclick('TEMP/aim_pic_name.png')
r.click('TEMP/r_key_open_ways.png');
r.click('TEMP/r_key_open_ways_org_pic.png');
使用滾輪
r.vision('wheel(WHEEL_UP, 120)')
獲取豆瓣最新電影排行
r.url('https://movie.douban.com/')
r.click('//*[@id="db-nav-movie"]/div[2]/div/ul/li[4]/a')
r.wait(1)
print(r.read('//*[@id="content"]/div/div[1]/div/div'))
r.click('//*[@id="content"]/div/div[1]/div/div/table[1]/tbody/tr/td[2]/div/a')
OCR
ocr主要是使用read函數
r.url('https://www.baidu.com')
r.type('//*[@id="kw"]', '新冠肺炎[enter]')
r.wait(1)
r.snap('page', 'TEMP/results.png')
print(r.read('//*[@id="1"]/div/div[2]/a/div[2]'))