RPA Framework
啥时候写了一篇这个忘记发表了,可能有谬误,还请指正
RPA Framework
https://github.com/robocorp/rpaframework
# 由于要安装的库有点多,速度会有点慢,推荐使用清华大学的镜像进行下载安装。
# 你也可以去掉-i后面的参数,使用pypi的源进行下载。
pip install rpaframework -i https://pypi.tuna.tsinghua.edu.cn/simple
系统配置
1.配置chromedriver.exe
①有膜法上网的能力的话可以直接运行初始化代码,他说他会帮你下driver,我就没办法了。
from RPA.Browser.Selenium import Selenium
lib = Selenium()
lib.open_available_browser('https://www.baidu.com')
②没有膜法上网能力的话我推荐你先将download参数设置为False,这样可以更快查看问题。
from RPA.Browser.Selenium import Selenium
lib = Selenium()
lib.open_available_browser('https://www.baidu.com', download=False)
③他会自动去寻找你的Chrome路径,所以你不用像selenium一样配置Path。
④官方的文档里面没有说driver要怎么下载,你可以参考一下selenium的文档。
https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
selenium官方提供了两个办法:
一是使用Webdriver Manager for Python
这个库。这个库就是自动帮你下载对应的chromedriver。
先安装他 pip install webdriver-manager
,然后运行下载指令。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
输出:
====== WebDriver manager ======
Current google-chrome version is 100.0.4896
Get LATEST chromedriver version for 100.0.4896 google-chrome
Driver [C:\Users\...\.wdm\drivers\chromedriver\win32\100.0.4896.60\chromedriver.exe] found in cache
可以看出他下载的路径,把这个chromedriver复制到你的Chome路径下就行了。
二是手动下载对应版本的chromedriver,然后复制到chrome的目录下面。
这个就没啥好说的了,如果你的chrome不是在默认目录下可能你还需要去配置一下Path。我的实在默认路径下,所以我不太清楚。
你可能会遇到的问题:
- Chrome: HTTPSConnectionPool(host=‘www.googleapis.com’, port=443)
open_available_browser
发现你配置不完全的时候会去自动帮你下载,但是由于你的腿长问题,你没办法下载,导致超时。
2.Message: ‘chromedriver’ executable needs to be in PATH.
open_available_browser
你配置了download=False,他不帮你下载了。但是你有没有配置好chromedriver所以失败。
3.
- Chrome: Message: session not created: This version of ChromeDriver only supports Chrome version 101
Current browser version is 100.0.4896.75 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
你下载的chromedriver版本和你的chrome不一致,比如我下载了101版本的chromedriver,但是我的chrome是100版本的,所以还是不行。
desktop库
OCR类型的Click
用ocr click之前得先安装rpaframework-recognition
pip install rpaframework-recognition
封装的是tesseract和opencv
需要安装一下tesseract的环境,可以直接从下面的地址里面下载安装包。然后配置一下PATH,如果用pycharm或者cmd记得要重启一下程序。PATH的配置需要重新开才能使用。
https://digi.bib.uni-mannheim.de/tesseract/ # tesseract Realese
https://github.com/tesseract-ocr/tessdata # 官方训练各语言库
pytesseract大家很熟悉了,通过配置lang
参数和安装训练包是可以使用中文识别的。
但有一个问题:pyrpaframework的封装导致他也没办法调用tesseract的中文识别。
以RPA.recognition.ocr.read
为例:
# RPA.recognition.ocr.read
def read(image: Union[Image.Image, Path]):
"""Scan image for text and return it as one string.
:param image: Path to image or Image object
"""
image = to_image(image)
try:
return pytesseract.image_to_string(image).strip()
except TesseractNotFoundError as err:
raise EnvironmentError(INSTALL_PROMPT) from err
可以看出他封装的基本用法和我们一般的tesseract库用法一致。用PIL
加载image后,调用image_to_string
来识别图片。
一路查看源码,在RPA\Desktop\keywords\finder.py
文件中发现了调用ocr的蛛丝马迹:
def finder(image: Image.Image) -> List[Region]:
matches = ocr.find(
image=image,
text=locator.text,
confidence=confidence,
region=region,
)
return [match["region"] for match in matches]
return self._find_from_displays(finder)
这里的ocr的库就是我们上面看的封装了tesseract的库了。
你可以直接在ocr的那个库的find函数里面直接增加调用chi_sim的参数。这样他就能识别一些比较好识别的中文字符了,但是由于这个库的中文识别成功率很低,所以我想尝试自己外接一个库。
data = pytesseract.image_to_data(image, lang='chi_sim', output_type=pytesseract.Output.DICT)
chineseocr_lite轻量级中文ocr
https://github.com/DayBreak-u/chineseocr_lite
可能会遇到以下错误。
Microsoft Visual C++ 14.0 or greater is required.
可以参考这位大神的解决方法。
https://blog.csdn.net/weiweichun/article/details/116904033
其他
1.推荐一个pipdeptree
的库,可以看到安装的第三方库的树形依赖结构,帮助查看库的实现方式。1
pip install pipdeptree
直接运行pipdeptree
可以看到pip安装的各个库的树形依赖结构。
https://jingyan.baidu.com/article/5225f26b229678a7fb09085b.html