求深信服防火墙登陆界面验证码识别的python代码

问题遇到的现象和发生背景

我现在正在做一个深信服网络设备自动备份的一个程序,需要设备需要输入验证码,如下图:

img

求识别此验证码的python代码。

问题相关代码,请勿粘贴截图

以下代码为已完成部分:


```python
from selenium import webdriver

url = 'https://10.30.5.25/'
browser = webdriver.Chrome()
browser.get(url)
browser.maximize_window()
print(browser.title)
browser.find_element_by_id("details-button").click()
browser.find_element_by_id("proceed-link").click()

browser.find_element_by_id("user").send_keys('luotao')
browser.find_element_by_id("password").send_keys('xxxxxxx')
'''
**此处放输入验证码的代码!**
'''
browser.find_element_by_id("button").click()



###### 我的解答思路和尝试过的方法 
我使用百度找了很多解决方式,不是识别不出来,就是运行报错。现在求助CSDN看能否解决。

###### 我想要达到的结果
因为我做的是批量备份,要求验证码识别率可以达到90%以上,越简单的解决办法越好。
最好是能够提供现成的代码,不要让我去排错,谢谢各位大佬。

你好

登陆验证码我截了十多张图,可以用来实验。

img

img

img

img

img

img

img

img

img

img

img

img

img

img

img

呵呵,答案已经删除。

你的截图太小了,验证图片是 下载图片,这样清晰度大小才行,我用了网上的稍微大点的,可以识别出来

import cv2 as cv
import pytesseract
from PIL import Image

def recognize_text(image):
    # 边缘保留滤波  去噪
    dst = cv.pyrMeanShiftFiltering(image, sp=10, sr=150)
    # 灰度图像
    gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
    # 二值化
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    # 形态学操作   腐蚀  膨胀
    erode = cv.erode(binary, None, iterations=2)
    dilate = cv.dilate(erode, None, iterations=1)
    cv.imshow('dilate', dilate)
    # 逻辑运算  让背景为白色  字体为黑  便于识别
    cv.bitwise_not(dilate, dilate)
    cv.imshow('binary-image', dilate)
    # 识别
    test_message = Image.fromarray(dilate)
    text = pytesseract.image_to_string(test_message)
    print(f'识别结果:{text}')


src = cv.imread('5.png')
cv.imshow('input image', src)
recognize_text(src)
cv.waitKey(0)
cv.destroyAllWindows()
识别结果:3n3D

img