纯数字字符相加的验证码破解

import time
from pytesseract import pytesseract
from selenium import webdriver
from PIL import Image
if __name__ == '__main__':
    browser = webdriver.Chrome(executable_path='D:\python\Scripts\chromedriver.exe')
    url = 'url'
    browser.get(url)
    browser.save_screenshot('D:\图片\print.png')
    element = browser.find_element_by_xpath('//*[@id="VerifCode"]')#验证码所在的xpath路径
    #获得验证码xy轴坐标
    location = element.location
    size = element.size
    rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),
          int(location['y'] + size['height']))
    #浏览器最大化保存图片到指定文件夹下
    browser.maximize_window()
    im = Image.open('D:\图片\print.png')
    im = im.crop(rangle)
    im.save('验证码.png')
    shibie = Image.open('验证码.png')
    imgry = shibie.convert('L')
    table = [1] * 256
    for i in range(256):
        table[i] = 0
        if i > 115:
            break
    out = imgry.point(table, '1')
    out.show()
    box = (10, 10, 125, 45)
    out.crop(box)
    result = pytesseract.image_to_string(out)
    yanzheng = result.split(' ')
    first = yanzheng[0][0]
    last = len(yanzheng[-1])
    if last >= 3:
        lastnum=yanzheng[-1][-2:]
    else:
        lastnum=yanzheng[-1][-1]
    jieguo = int(lastnum) - int(first)
    print(jieguo)

识别达到99%,另外的1%其实也是可以解决的,有时间再解决。

转载于:https://www.cnblogs.com/542684416-qq/p/10904706.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值