知乎倒立文字验证码的识别

因为实验模拟登陆知乎,短时间内多次反复登陆退出。。。知乎的倒立文字验证码就来了。(也弄不太清楚触发机制)

倒立文字验证码的识别比较麻烦。。。github上有个大佬写了个zheye,刚好可以直接拿来使用一哈~~(大佬666)

配置环境没啥要写的

有个网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/ ,如果安装过程中有某个包安装一直安装出错,可以用这个网站来单独下载安装(Windows平台哈)。。。

使用zheye来识别倒立文字验证码

下面有几个验证码

pic1

pic1

pic1

调用代码非常简单(人大佬的示例就这么写的。。。)

from zheye import zheye

z = zheye()
positions = z.Recognize('path') # 传入待识别的image路径

print(positions)

"""
上面三个的识别结果是:
第一张图 --> [(47.539838346305075, 278.1807425580301), (50.669637093864495, 39.793204526702326)]
第二张图 --> [(51.29255898128636, 43.4488242276673), (56.464591534329514, 298.2267037254555)]
第三张图 --> [(42.97633810869176, 183.70079377331135)]
"""

稍有些不习惯的地方是,返回的坐标格式是(y, x)并且顺序可能还不是从左到右的,所以稍微的改写下。。。

from zheye import zheye

z = zheye()

positions = z.Recognize('path')

print(positions)

final_pos = []

if len(positions) == 2:
    if positions[0][1] > positions[1][1]:
        final_pos.append((positions[1][1], positions[1][0]))
        final_pos.append((positions[0][1], positions[0][0]))
    else:
        final_pos.append((positions[0][1], positions[0][0]))
        final_pos.append((positions[1][1], positions[1][0]))
else:
    final_pos.append((positions[0][1], positions[0][0]))

print(final_pos)

"""
结果:
第一张图 --> [(39.793195121118494, 50.66950388807909), (278.18340966874507, 47.53953343698679)]
第二张图 --> [(43.49618796633462, 51.29616269957013), (298.23012835814836, 56.46431790994157)]
第三张图 --> [(183.70213238750395, 42.97526554733936)]
"""

非常nice啊,机器学习好厉害了。。。(跃跃欲试ing)

上面3张图片是大佬提供的测试图片倒立文字...

好了,倒立文字的验证码识别先这么多了。。。找时间搞搞滑动验证码...

posted on 2021-03-16 15:26  Acjm  阅读(430)  评论(0)    收藏  举报

导航