前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >写给爬虫工程师的验证码识别教程

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

作者头像
爬虫
发布2020-05-20 16:26:31
发布2020-05-20 16:26:31
53300
代码可运行
举报
文章被收录于专栏:Python与爬虫Python与爬虫
运行总次数:0
代码可运行

背景

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

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

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

就可以解决 验证码问题.

前提

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

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

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

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

假设训练 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

识别验证码

代码语言:javascript
代码运行次数:0
复制
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())

反馈验证结果

代码语言:javascript
代码运行次数:0
复制
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

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

本文分享自 Python爬虫分享 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 前提
  • 环境
  • 安装依赖
  • opencv 安装
  • 使用
    • DATA_DIR
    • H, W, C
    • str_charts
    • D
    • accuracy_rate
    • model_file_name
    • image_type
  • 开始训练
  • 使用 api
    • 识别验证码
    • 反馈验证结果
  • 参考
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档