python识别图形验证码2018-06-26

1.需要导入以下包(pytesseract.src里面应该要用notepad++编辑Tesseract-OCR路径,如我的第26行: tesseract_cmd = 'C:\Program Files (x86)\Tesseract-OCR\\tesseract')

from PILimport Image

from pytesseract.srcimport pytesseract

2.代码实现如下:

 # 截取当前网页,该网页有我们需要的验证码

driver.save_screenshot('D://aa.png')

# 定位验证码

imgelement = driver.find_element_by_xpath(self.IMAGE_CODE_PATH)

# 获取验证码x,y轴坐标

location = imgelement.location

# 获取验证码的长宽

size = imgelement.size

# 写成我们需要截取的位置坐标

rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']), int(location['y'] + size['height']))

# 打开截图

i = Image.open("D://aa.png")

# 使用Image的crop函数,从截图中再次截取我们需要的区域

frame4 = i.crop(rangle)

frame4.save('D://frame4.png')

img = Image.open('D://frame4.png')

# 锐化图片,这里很关键

im = img.point(lambda i: i *2.5)

BB = pytesseract.image_to_string(im)

print(u"识别的验证码为:" + BB)

3.用try……except Exception取识别出来的0,2,4,6位,为防止错误,如识别不对,重新执行识别图形码方法。

try:

    for iin range(0, 7, 2):

    driver.find_element_by_xpath(self.VERIF_CODE).send_keys(BB[i])

    sleep(3)

    driver.find_element_by_xpath(self.SUMIT).click()

    sleep(3)

except Exception:

    driver.close()

    self.get_streen(user_name,pwd)

4.end

你可能感兴趣的:(python识别图形验证码2018-06-26)