前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何利用python识别验证码和车牌号?

如何利用python识别验证码和车牌号?

作者头像
叶子陪你玩
发布2020-05-12 15:05:10
9540
发布2020-05-12 15:05:10
举报

想要自动爬取网页内容,但是有些网站需要输入验证码,而验证码总是随机的,为了解决这个问题,首先需要自动获取验证码,然后将其下载下来,最后识别其中文字内容。

前面两步骤还是比较简单的,最后识别文字内容就比较麻烦了,查了很多资料,要用到ocr 文字识别技术,OCR 全称 Optical Character Recognition,是光学字符识别的意思,可以对图像上的文字进行识别。

第一种方案:pytesseract结合pillow库识别。 试了一下,对于非常简单的字符到可以识别,稍微有些干扰就不行了,准确度非常低。

第二种方案:利用opencv结合机器学习,先下载很多的验证码图片,然后将每个验证码中的字符切割出来,接着进行特征标注,训练数据等,效果看了一下,训练的好的准确率能到80左右,差的有些一半都不到,试了一下,效果不是很好,放弃了;还有些说用深度学习的方法,这个自己不是很懂,直接放弃了。

第三种方案:直接使用大公司开发好的OCR接口,试了一下百度的,一般文字清晰,准确率还是很高的,古诗,车牌啥的都没问题,只需要将数据上传到接口,返回json结构数据,使用还是非常简单的。

下面是记录的结果:

第一种:pytesseract结合pillow库

安装安装 tesseract ,pytesseract和pillow库。

tesseract并不是python中的,需要安装exe文件。我下载的是最后一个

记住自己安装的位置,我是安装在D盘。

安装成功后,启动命令行,查看版本,发现不行,原来是没有添加到path里面。

打开高级系统设置,添加进环境变量。

重新试一下,成功。

稍微带一点干扰就不准确了。

下面这种非常整齐的,没有背景干扰的还不错。

下面这种就更差了。

第二种方案:利用opencv结合机器学习。

之前只是尝试过自然语言的机器学习,这种图片的并没有试过。首先需要自己有很多的验证码数据图片。

下载验证码:

这里我找的是中小学教师资格证的网站,有登录验证码。

右键查看源代码,并没有找到图片链接。

不能直接找到链接的,肯定就是js动态获取的,所以就查看网络里面,找到了url链接。

下载一张验证码。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一种:pytesseract结合pillow库
  • 第二种方案:利用opencv结合机器学习。
    • 下载验证码:
    相关产品与服务
    验证码
    腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档