关于简单验证码的识别

2016-07-24 10:05:15 +08:00
 dotpig
受爱国青年的影响,最近喜欢读人民日报。人民日报网站提供 pdf 下载,每一页一个 pdf 文件。本来很好的一件事,我可以弄个脚本每天自动下载、合并一张报纸的十几个 pdf ,回家后就可以看了(本地报纸我就是这么弄的)。但是,人民日报选择给人民制造一点麻烦,就是下载每一页报纸都要输入验证码。验证码很简单,就是 4 个等宽数字,如下图:



由于我不会编程,咨询一下有没有简单方便的识别方法可用,比如 python 的,最终目的就是在脚本里方便的将验证码识别并提交,然后下载对应的文件( curl )。
3790 次点击
所在节点    问与答
21 条回复
scnace
2016-07-24 10:09:17 +08:00
尝试一下 ocr
int64ago
2016-07-24 10:11:05 +08:00
不需要 OCR ,这种是最简单的,过滤背景-分割-对比
jswh
2016-07-24 11:29:23 +08:00
@int64ago 还是 OCR 方便,自己写其实最终也是 OCR 那一套。

https://github.com/tesseract-ocr/tesseract
niboy
2016-07-24 11:36:06 +08:00
PIL
dotpig
2016-07-24 12:14:11 +08:00
发现有 PyTesser 可用。悲剧的是,我发现人民日版数字版其实要钱的,下了三页以后就要求输入订阅帐号了。那我只能上网学习人民日报了。
Garantion
2016-07-24 12:14:31 +08:00
最简单的 KNN 即可 Github 上一搜一大把
yangxiongwei
2016-07-24 12:15:28 +08:00
tscat
2016-07-24 12:17:56 +08:00
二值化之后 ocr 就行
klesh
2016-07-24 13:16:33 +08:00
会 python 不会编程?
bazingaterry
2016-07-24 13:22:52 +08:00
这个和我校的教务系统很像,我处理的时候直接 OCR 就有 70% 成功率。
popok
2016-07-24 13:50:21 +08:00
次世代验证码识别,可以找下破解版。
SDK 例程: http://antiyzm.sinaapp.com/
就你这个验证码的话,识别率可以到 100%
popok
2016-07-24 14:04:59 +08:00

新建工程,然后每个数字都做一个字模,然后生成 cds 文件,用 python 调用一个 dll ,加载这个字模文件,就能识别了
coolzjy
2016-07-24 14:15:02 +08:00
这种类型的验证码,曾经用 JavaScript 搞了一个在浏览器环境中识别的。
http://coolzjy.github.io/captcha-reader/
coolzjy
2016-07-24 14:22:35 +08:00
@dotpig 下载三页确定不是 cookie 控制的?
fusae
2016-07-24 16:12:15 +08:00
fusae
2016-07-24 16:13:46 +08:00
DaCong
2016-07-24 16:30:00 +08:00
我记得我曾经搞过一个类似的,好像是教务系统的。
说一下大致思路:
1. 图片降噪
2. OCR 识别
bumz
2016-07-24 18:24:34 +08:00
@Garantion KNN 指什么? k-Nearest Neighbors?
Garantion
2016-07-24 20:15:00 +08:00
@bumz 是的,不好意思,写缩写写错了,应该是 k-NN 。
panda0
2016-07-25 08:36:24 +08:00
tesseract 我刚试了下,好像毫无难度。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294510

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX