声明:沃贝签到网站已经在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去登录网站签到.
定时启动脚本进行签到.
欢迎关注,欢迎交流.
参考链接:
网友评论