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。我的实在默认路径下,所以我不太清楚。

你可能会遇到的问题:

  1. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值