Python 机器学习 识别验证码 来个“沃贝”自动签到(2:机器识别)

声明:沃贝签到网站已经在10月初归西, 但技术是不过时的哦。

前言叨B叨

上篇给大家唠了验证码识别的前半部分, 关注的人还挺多, 我来再多抽点时间赶紧把后半部分给放出.

终于整理好了第二部分:机器识别。GitHub上的代码不知道大家看了没,写的可能没那么规范,但是能用。处女座先将就下吧。回头我有空了重构一下,再加入些其他的签到。

言归正传,下面开始介绍图像识别部分: 即 !红框标注部分

安装工具包

安装Scikit-learn需要先准备以下包:

Python (>= 2.7 or >= 3.3),

NumPy (>= 1.8.2),

SciPy (>= 0.13.3).

执行以下命令安装必备工具包:

sudo pip install numpysudo pip install scipysudo pip install -U scikit-learn

提取字符特征

让安装包飞一会, 我们这会来先把字符特征提取出来.

大概说一下以下代码: dirs 是我们前面分好类的图片路径, 每个子文件夹是从0-9, 分别存放了n多处理过的单个数字图片. 这段代码就是把所有的二值化后的数字图片全部读取出来, 写入一个文本文件 train_data.txt, 就是些1和0. 打开文件,调整下编辑器宽度,可以看到喜人的画面:

好, 特征文件生成完毕, 接下来开始进入关键步骤.

样本训练

将上一步生成的特征值加载,

这里SVM的模型分类是用scikit-learn来实现的, 这里SVM的参数选择的是线性核"linear", 关于SVM和scikit-learn, 我还没有去研究, 这里只是参考别人的方法实现我识别验证码的目的. 如有这方面的高手路过, 还望不吝赐教.

运行train()之后, 会生出captach.pkl训练后的文件, 有了这玩意, 后面就可以直拿来识别验证码了.

识别

下面我们随便找一张验证码图片试试水

看,识别率杠杠滴

结语

哒哒~~~验证码识别部分就讲到这了, 大家有兴趣研究可以去GitHub下代码, 这里我再贴一下:

https://github.com/shark526/WowSign

后面我会再整理一下其他签到相关内容,比如说:

解决沃贝签到那个坑爹网站不能用密码登录.

怎么使用requests去登录网站签到.

定时启动脚本进行签到.

欢迎关注,欢迎交流.

参考链接:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容