`

python-利用tesseract获取验证码中的数字

 
阅读更多

 

利用tesseract获取验证码中的数字:

1.安装PIL-fork-1.1.7.win-amd64-py2.7

2.安装Pillow-4.3.0.win-amd64-py2.7

3.pip install pyocr

pip install pytesseract

4.安装ocr工具:tesseract-ocr-setup-4.00.00dev.exe

http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe

语言包:

简体字识别包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata

繁体字识别包:https://github.com/tesseract-ocr/tessdata/raw/4.0/chi_tra.traineddata

其他语言的识别包https://github.com/tesseract-ocr/tesseract/wiki/Data-Files。

5.配置tesseract-ocr环境变量

C:\Program Files (x86)\Tesseract-OCR

6.新增TESSDATA_PREFIX环境变量

变量名:TESSDATA_PREFIX

值:C:\Program Files (x86)\Tesseract-OCR\tessdata

7.python代码

# coding: utf-8

 

import pytesseract

 

import sys

import pyocr.builders

import pyocr

from PIL import Image

 

 

def image_to_str(vfile):

    tools = pyocr.get_available_tools()

    if len(tools) == 0:

        print("No OCR tool found")

        sys.exit(1)

    langs = tools[0].get_available_languages()

    txt = tools[0].image_to_string(

        Image.open(vfile),

        lang=langs[0],

        builder=pyocr.builders.TextBuilder()

    )

    print txt.replace(" ", "")

    return txt.replace(" ", "")

 

 

def image_to_str_by_pytesseract(vfile):

    image = Image.open(vfile)

    code = pytesseract.image_to_string(image)

    print code.replace(" ", "")

    return code.replace(" ", "")

 

 

if __name__ == '__main__':

    file1 = u'D:\WORK\python包&OCR\验证码.jpg'

    file2 = u'D:\WORK\python包&OCR\验证码2.jpg'

    file3 = u'D:\WORK\python包&OCR\验证码3.jpg'

    image_to_str(file1)

    image_to_str_by_pytesseract(file2)

    image_to_str_by_pytesseract(file3)

 

8.pycharm中执行注意,需要添加对应变量,不然在pycharm中执行会报错

 图片见附件

9.方法2引用pytesseract报错解决:

进入C:\Python27\Lib\site-packages\pytesseract

打开pytesseract.py

修改:

try:

    import Image

except ImportError:

    from PIL import Image

修改为:from PIL import Image即可

 

 

  • 大小: 54.1 KB
分享到:
评论

相关推荐

    Python代码源码-实操案例-框架案例-如何获取网页中动态加载的验证码图片.zip

    在Python编程中,我们需要处理这种动态加载的验证码图片时,可以采用多种方法。下面我们将详细探讨如何利用Python实现这个目标。 首先,了解动态加载验证码的原理至关重要。动态验证码通常通过JavaScript或者Ajax...

    tesseract 2.04 DLL文件与英文字符集

    然后通过编程接口(如C++、Python等)调用DLL中的函数,如`TessBaseAPI::Init`进行初始化,`TessBaseAPI::Recognize`进行识别,以及`TessBaseAPI::GetUTF8Text`获取识别结果。 **性能与优化** 尽管Tesseract 2.04在...

    数据挖掘与数据管理-处理验证码.pptx

    在处理图片验证码时,首先需要获取验证码图片,这可以通过解析HTML源代码找到相关节点并发送请求实现。然后,将图片转换为灰度图像,进一步进行二值化处理,即设定阈值,将图像中像素点分为黑、白两部分,以消除干扰...

    Python3爬虫中识别图形验证码的实例讲解

    首先,我们需要从网页中获取验证码图片。这通常可以通过浏览器的开发者工具来实现,找到验证码图片的URL,如本例中的`CheckCode.aspx`,直接访问这个URL并保存图片至本地,例如命名为`code.jpg`。 4. 识别测试 接...

    python识别验证码的思路及解决方案

    - **获取验证码**: 通过浏览器截取验证码图片。 - **预处理**: 对获取的验证码图片进行灰度处理、二值化等操作。 - **降噪**: 去除图片中的噪声。 - **分隔字符**: 将图片按照每个字符进行分隔。 - **哈希比对**: ...

    muggle-ocr-1.0.3 muggle_ocr库下载_验证码识别_源码

    为了提高识别率,可以结合多种技术,如模板匹配、OCR引擎(如Tesseract)以及深度学习模型,并持续更新模型以适应新的验证码类型。 总结来说,`muggle_ocr`库是Python爬虫开发者的一个有力工具,通过它我们可以更...

    通过惠普推出的tessdata语言包进行识别,图片验证码破解

    本话题将详细讲解如何利用惠普推出的Tesseract(tessdata)语言包来识别图片验证码,以及在这个过程中可能遇到的问题和解决策略。 Tesseract是一款开源的OCR(光学字符识别)引擎,最初由HP开发,后被Google维护并...

    Python基于内置库pytesseract实现图片验证码识别功能

    # 获取验证码图片 chaojiying_url = "http://www.chaojiying.com/include/code/code.php?u=1" response = requests.get(chaojiying_url).content with open('rryz.png', 'wb') as f: f.write(response) # 调用...

    自定义验证码

    还可以利用开源库和框架,如OpenCV用于图像处理,或Tesseract OCR(光学字符识别)进行反向验证。 7. **性能优化**:验证码系统需要快速响应用户请求,因此在设计时要考虑服务器负载和性能。通过缓存、分布式计算和...

    Python练习项目,当前实现了:homes.jp爬虫、大悦城自动签到

    模型训练后,可以将输入的验证码图片转换为数字序列,从而完成自动识别。 6. 每日NHK爬虫: NHK是日本的国家公共广播机构,其网站上每日更新新闻。这个爬虫项目可能是为了收集新闻标题、内容和发布时间等信息。...

    基于Python的批量爬取B站小视频.zip

    对于验证码,我们可以借助OCR(光学字符识别)技术,如Tesseract,将图片中的验证码转换为文本。 再者,考虑到批量爬取的需求,我们需要实现数据的存储。常见的存储方式有文本文件、CSV、JSON或数据库(如SQLite)...

    京东自动抢茅台python脚本源码.zip

    京东可能会有滑动验证码或者数字验证码,这需要使用OCR(光学字符识别)技术,比如Tesseract库,来识别并输入验证码。 此外,脚本可能还需要考虑到异常处理,例如网络延迟、库存瞬时变化等情况,通过try-except结构...

    python验证码图片处理(二值化)

    在Python中,我们可以利用PIL(Python Imaging Library)库进行图像处理,以及pytesseract库来识别图像中的文本。 首先,我们要理解什么是二值化。二值化是将图像的每个像素点的灰度值设置为0或255,即黑白两种颜色...

    python实现图书馆研习室自动预约功能

    验证码是一个重要的部分,由于每次刷新页面验证码都会改变,所以我们需要在获取验证码后立即保存,然后在提交登录信息时使用同一验证码。这要求我们在两次请求之间保持cookie的一致性。 2. **查找房间**: 虽然...

Global site tag (gtag.js) - Google Analytics