python+selenium+Tesseract-OCR识别图片验证码

#获取图片验证码
#pip install pytesseract  下载 pytesseract模块
import pytesseract
# 链接:https://pan.baidu.com/s/1zi-pky5oPdcGFl5nI8BAnw
# 提取码:dyxt
# 下载 tesseract-ocr工具然后安装

#导入PIL模块中的 Image,ImageEnhance 模块
from PIL import Image,ImageEnhance
from selenium import webdriver
from time import sleep

#例:多有米后台管理系统登录
driver = webdriver.Chrome()
driver.get('http://192.168.244.128:8080/manage/')
driver.implicitly_wait(10)
driver.maximize_window()

driver.find_element_by_xpath('//*[@id="username"]').send_keys('admin')
driver.find_element_by_xpath('//*[@id="password"]').send_keys('123456')

def login_verify():
    driver.find_element_by_xpath('//*[@id="password"]').send_keys('123456')
    # 截取屏幕内容,保存到本地
    driver.save_screenshot("C:\\Project\\pageobject\\config\\img.png")
    # 打开截图,获取验证码位置,截取保存验证码
    ran = Image.open("C:\\Project\\pageobject\\config\\img.png")
    # 获取验证码位置,使用手动定位,代表(左,上,右,下)
    box = (1315, 366, 1385, 390)
    # 把获取的验证码保存
    ran.crop(box).save("C:\\Project\\pageobject\\config\\img02.png")
    #打开验证码图片,读取验证码
    imageCode = Image.open("C:\\Project\\pageobject\\config\\img02.png")
    sleep(1)
    # 读取验证码
    code = pytesseract.image_to_string(imageCode).strip()
    # print(code)
    #输入验证码
    driver.find_element_by_xpath('//*[@id="vcode"]').send_keys(code)
    driver.find_element_by_xpath('//*[@id="i_submit"]').click()
    text = driver.find_element_by_xpath('//*[@id="credentials.errors"]').text
    if text == '验证码有误!':
        login_verify()
    else:
        print('我将继续执行')

login_verify()

 

上一篇:图形验证码识别


下一篇:云小课 | 一个三分钟快速定制OCR应用的神器,要不?