文 | 某某白米饭

来源:Python 技术「ID: pythonall」

在使用爬虫登录网站的时候,经常输入用户名和密码后会遇到验证码,简单一点的有字母验证码,复杂一点的有滑块验证码,点选文章和点选图片验证码。 这些都是爬虫中的老大难问题,今天介绍一款通用验证码识别 SDK 对他们彻底说拜拜,它的名字是 ddddocr 带带弟弟 OCR 通用验证码识别 SDK 免费开源版。

安装

将自动安装符合自己电脑环境的最新 ddddocr。Python 环境需要小于等于 3.9。

pip install ddddocr

使用

带带弟弟 OCR 可以识别三种验证码,小编就用这三种来实验一下。

滑块验证码

滑块验证码这里用的是豆瓣的滑块验证。下滑块是单独的透明背景图 hycdn.png。

hycdn.png

背景图是带小滑块坑位的 background.jpg。

background
import ddddocrdet = ddddocr.DdddOcr(det=False, ocr=False)with open('hycdn.png', 'rb') as f:target_bytes = f.read()with open('background.jpg', 'rb') as f:background_bytes = f.read()res = det.slide_match(target_bytes, background_bytes, simple_target=True)print(res)

识别结果

{'target_y': 0, 'target': [486, 126, 622, 262]}

target 属性的前两个值正好和豆瓣验证滑块 url 中提交的 ans 差不多。

点选类验证码

点选类验证码用的是网易登录

eb.jpg
det = ddddocr.DdddOcr(det=True)with open("eb.jpg", 'rb') as f:image = f.read()poses = det.detection(image)im = cv2.imread("eb.jpg")for box in poses:x1, y1, x2, y2 = boxim = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)cv2.imwrite("result.jpg", im)

识别结果

字母数字验证码

字母数字验证码的图片来自于 google 搜索

ocr = ddddocr.DdddOcr(old=True)with open("z1.jpg", 'rb') as f:image = f.read()res = ocr.classification(image)
print(res)

识别结果

3n3d
8342

总结

ddddocr 让验证码变得如此简单与易用,,让不会用 opencv, pytorch, tensorflow 的小伙伴也能快速的破解网站的登录验证码。小伙伴们如果有其他好的 ocr 识别也可以在留言中分享出来。

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式】

识别文末二维码,回复:某某白米饭

带带弟弟ocr,对各种类型验证码说不!相关推荐

  1. dddd带带弟弟OCR识别验证码

    在 github 上找到一个开源库,而且还很强大.这个库叫 ddddocr , GitHub - sml2h3/ddddocr: 带带弟弟 通用验证码识别OCR pypi版 ddddorc 安装使用 ...

  2. 使用Windows 10自带工具 校验MD5 SHA1 SHA256类型文件

    使用Windows 10自带工具 校验MD5 SHA1 SHA256类型文件 适用场景:下载文件的完整性校验等. cmd调出命令行,输入如下命令 certutil -hashfile <文件名& ...

  3. 通过labview vision视觉模块写的带学习功能的OCR字符识别程序

    labview vision视觉模块写的带学习功能的OCR字符识别程序 为解决在用Labview做OCR字符识别视觉开发中每次都要用开发工具自带的学习模块,自己用VDM函数自己写了个子程序,方便嵌入带 ...

  4. 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss...

    /*** 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较* @param higDate 减数* @param lowDate 被减数* @returns 差值天数 格式不正 ...

  5. 《老司机,带带我》之考驾照

    本文地址:http://www.cnblogs.com/aiweixiao/p/7525915.html 原文地址(微信公众号) 一.引子 确实需要老司机带带我了,快而立了还没有考驾照,是不是有点lo ...

  6. ⚡爬虫高级篇⚡五行代码识别验证码—— ddddocr(带带弟弟OCR)

    验证码识别

  7. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  8. 生成带大写英文字母和数字的验证码(手机或邮箱)

    最近由于编写项目的注册功能,需要一个能够生成带大写英文字母的验证码工具类,就写了一个 public class RandomUtil {//生成size长度的验证码,hasLetter决定是否带大写英 ...

  9. 15岁姐姐单独带大弟弟妹妹 母亲身杀父亲过世

    云阳龙洞乡高建村3组15岁的卢胜珍家,她和12岁妹妹卢小碧.10岁弟弟卢小令坐在一起. 重庆晨报记者李斌摄 "我做梦都想我们3个人每天生活在一起.两地分居,没把妹妹和弟弟照顾好,这是我的错, ...

最新文章

  1. ASP.NET2.0 - skmMenu 的使用
  2. 《深入理解Android》一2.1 浏览器工作原理概述
  3. IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”
  4. MS Code 使用 TFVC 插件时遇到的问题
  5. flume channel monitor实现源码分析
  6. Python io – BytesIO,StringIO
  7. HSRP+生成树+vlan间路由!
  8. mac怎么给python下载库_关于macos:在Python中安装库
  9. 张鹏程:7月24日阿里云上海峰会弹性计算大神
  10. android图片添加多行文字,Android使用SpannableString实现多行文字开头放置标签图案...
  11. Psychological Bulletin:社会认知的层次模型
  12. 数值分析(9):数值积分之Newton-Cotes求积公式和复合求积公式
  13. 路由器交换机之重设密码
  14. 从根上理解高性能、高并发(七):深入操作系统,一文读懂进程、线程、协程
  15. TM4C KEIL模板建立
  16. C#字符串转二进制、二进制转字符串
  17. 洛谷 P1610 鸿山洞的灯
  18. 关于AOP的实现原理
  19. 魔众文库系统 v2.1.0 页面SEO优化,系统升级调整
  20. 4点技巧教你如何正确管理多个微信群

热门文章

  1. FPGA — Vivado下ILA(逻辑分析仪)详细使用方法
  2. 关于深度相机与双目相机的初步了解
  3. NodeJS设计模式
  4. 安卓手机adb自定义动画速度
  5. 软件测试基本概念总结
  6. 为聋哑帅哥征集一万句“我爱你”(转)
  7. 壹号本ONEMIX电脑系统故障如何自己重装的方法分享
  8. 全局变量和局部变量初始化问题
  9. python gil 解决_Python GIL问题
  10. linux 磁盘挂载故障,LVM讲解和磁盘挂载故障