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

Posted 多测师张sir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于python+selenium+Tesseract-OCR识别图片验证码的主要内容,如果未能解决你的问题,请参考以下文章

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

Python+selenium自动识别验证码

python3.5配置pillow,pytesseract与selenium

python+selenium识别验证码并登录

Selenium实战—— 登录过程验证码的获取

selenium识别登录验证码---基于python实现