dotpig
V2EX  ›  问与答

关于简单验证码的识别

  •  
  •   dotpig · Jul 24, 2016 · 4407 views
    This topic created in 3605 days ago, the information mentioned may be changed or developed.
    受爱国青年的影响,最近喜欢读人民日报。人民日报网站提供 pdf 下载,每一页一个 pdf 文件。本来很好的一件事,我可以弄个脚本每天自动下载、合并一张报纸的十几个 pdf ,回家后就可以看了(本地报纸我就是这么弄的)。但是,人民日报选择给人民制造一点麻烦,就是下载每一页报纸都要输入验证码。验证码很简单,就是 4 个等宽数字,如下图:



    由于我不会编程,咨询一下有没有简单方便的识别方法可用,比如 python 的,最终目的就是在脚本里方便的将验证码识别并提交,然后下载对应的文件( curl )。
    21 replies    2016-07-25 10:44:31 +08:00
    scnace
        1
    scnace  
       Jul 24, 2016 via Android
    尝试一下 ocr
    int64ago
        2
    int64ago  
       Jul 24, 2016 via Android
    不需要 OCR ,这种是最简单的,过滤背景-分割-对比
    jswh
        3
    jswh  
       Jul 24, 2016
    @int64ago 还是 OCR 方便,自己写其实最终也是 OCR 那一套。

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

    新建工程,然后每个数字都做一个字模,然后生成 cds 文件,用 python 调用一个 dll ,加载这个字模文件,就能识别了
    coolzjy
        13
    coolzjy  
       Jul 24, 2016   ❤️ 1
    这种类型的验证码,曾经用 JavaScript 搞了一个在浏览器环境中识别的。
    http://coolzjy.github.io/captcha-reader/
    coolzjy
        14
    coolzjy  
       Jul 24, 2016
    @dotpig 下载三页确定不是 cookie 控制的?
    fusae
        16
    fusae  
       Jul 24, 2016
    DaCong
        17
    DaCong  
       Jul 24, 2016
    我记得我曾经搞过一个类似的,好像是教务系统的。
    说一下大致思路:
    1. 图片降噪
    2. OCR 识别
    bumz
        18
    bumz  
       Jul 24, 2016
    @Garantion KNN 指什么? k-Nearest Neighbors?
    Garantion
        19
    Garantion  
       Jul 24, 2016
    @bumz 是的,不好意思,写缩写写错了,应该是 k-NN 。
    panda0
        20
    panda0  
       Jul 25, 2016
    tesseract 我刚试了下,好像毫无难度。
    dotpig
        21
    dotpig  
    OP
       Jul 25, 2016
    各位,看到大家的回复,很感谢。我在 5 楼说了,找到 PyTesser 了(基于 tesseract )。但是现在找到也没用,因为人民日报电子版需要订阅才能看。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 12:51 · PVG 20:51 · LAX 05:51 · JFK 08:51
    ♥ Do have faith in what you're doing.