专栏首页Python与爬虫写给爬虫工程师的验证码识别教程

写给爬虫工程师的验证码识别教程

背景

大家都知道机器学习对识别验证码很好用

但是对于一个爬虫工程师来说,去学习 机器学习相关知识可能成本太高了.(当然有空的话,还是要好好学的)

本篇 是 以实用为主,让你不需要了解任何机器学习的知识,只需要按照配置把图片放好...

就可以解决 验证码问题.

前提

需要有标记好的验证码图片

没有的话,假如你现在是接的商用的打码服务,可以把验证通过的图片存下来。

或者自己手工标记一批...(懒的话 对接打码服务也是可以的.)

爬虫来训练这个模型,自己识别验证码收益是非常高的。

假设训练 1 天后,有 95%的准确率来,你就接入自己的服务,并且后续一直把通过的图片保存下来

这样的话...你的样本是越来越多...识别率也就越来越高

环境

python 版本: 3.7

系统: mac ubuntu 都测试过.

安装依赖

pip install -r requirements.txt

opencv 安装

conda install -c conda-forge opencv

参考 https://anaconda.org/conda-forge/opencv

使用

更改 train/config.py 里面的配置

DATA_DIR

验证码图片路径(注意,默认验证码图片命名规则是 验证码_xxx.jpg)

也就是说是以_分割的, 需要自定义可以修改 parse_filepath这个方法

H, W, C

图片的高、宽、多少层

理论上验证码的图片大小都是一样的...如果有的不一样,就填成自己想要统一成的大小

str_charts

验证码里的所有字符,或者说验证码由哪些组成(比如全是数字验证码、数字+大小写的验证码)

D

验证码的长度 (4 位验证码,6 位验证码等等

accuracy_rate

到多少准确度以后就停止训练

model_file_name

训练完后的 model 文件(api 需要用到)

image_type

图片后缀 比如 jpg、png

开始训练

python train/cnn.py

使用 api

识别验证码

def test1():
    "提交验证码图片文件"
    imname = "11216h_3579db1e15a3541dc5b696f6093e1cc4.png"
    files = {"file": open(imname, "rb")}
    r = requests.post("http://127.0.0.1:5000/upload", files=files)
    print(r.json())

反馈验证结果

def test2():
    "提交返回结果"
    reqid = "7537ea4b-b26d-4263-a628-6b02c2d37add"
    status = 1
    r = requests.get(
        "http://127.0.0.1:5000/upload", params={"reqid": reqid, "status": status}
    )
    print(r.json())

参考

https://github.com/JackonYang/captcha-tensorflow

项目地址

https://github.com/jin10086/tensorflow-cnn-captcha-server

本文分享自微信公众号 - Python爬虫分享(python_crawler),作者:不写bug不舒服的高师傅

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 爬虫入门到精通-mongodb的基本使用

    在之前我们讲解了如何爬取网页(不管是异步加载的还是普通的),但是爬取下来的数据该如何保存呢? 保存到文本文件? 可能有人会说那我保存在文本文件里面,这样也是可以...

    爬虫
  • 爬虫小工具-copyheader

    大家写爬虫的,肯定知道如何伪造请求头了,那么你们是如何做的呢? 首先,来看看我之前是如何做的,有多烦我就不说了... ? 如果有小伙伴是和我一样,那么请帮忙把这...

    爬虫
  • 从爬虫角度来说下360快视频事件

    360快视频事件 最开始好像是东方华灯宴的视频被发现被盗用,然后众用户排查发现大量B站视频被快视频盗用,连用户和评论也大量照搬,并有很多B站用户发现使用B站的用...

    爬虫
  • 验证码安全那些事

    前言 最近在研究验证码安全,本文主要分析四种流行的验证码(图形,短信,语音和滑动)进行分析,写这篇文章的出发点并非是绕过或破解验证码,而是根据自身业务情况来选择...

    FB客服
  • 互联网应用常见验证码技术一览

    原理:向服务端请求,生成随机的字符,写入会话请求,同时将随机字符生成对应图片,响应给前端;前端输入对应字符的验证码,向后台发起校验。

    歪脖贰点零
  • 网站安全检测之图片验证码

    在对网站安全进行整体的安全检测的时候,用户登陆以及用户留言,评论,设置支付密码,以及一些网站功能方面都会用到图片验证码,针对于验证码我们SINE安全对其进行了详...

    网站安全专家
  • 自动化测试解决验证码问题

    短信验证码只做了手工测试,当时想的是短信验证码需要一台手机,并且能够发送验证码,由于当时没有做移动端的任何测试,考虑到成本问题只能在自动化测试是放弃这种登录验证...

    软测小生
  • 如何设计相对安全的图形验证码?

    验证码(CAPTCHA)即“Completely Automated Public Turing test to tell Computers and Huma...

    宜信技术学院
  • 网站漏洞修复之图片验证码的详细修复方案

    在对网站安全进行整体的安全检测的时候,用户登陆以及用户留言,评论,设置支付密码,以及一些网站功能方面都会用到图片验证码,针对于验证码我们SINE安全对其进行了详...

    技术分享达人
  • 基于GAN的验证码识别工具,0.5秒宣告验证码死刑!

    这是一个比较棘手的问题,多年来,这个问题的解决方案一直就是“验证码”,就是看看你能够能成功识别一系列机器无法识别的扭曲字符。这类安全验证工具被称为“CAPTCH...

    新智元

扫码关注云+社区

领取腾讯云代金券