[爬虫]微博宫格验证码识别(3.1)

Posted 兴华python笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[爬虫]微博宫格验证码识别(3.1)相关的知识,希望对你有一定的参考价值。


      验证码识别成为了对抗反爬虫的必修课之一,本专题将着重学习记录不同的验证码识别方式:图像验证码、极验滑动验证码、点触验证码、宫格验证码。


  • 微博宫格验证码


识别效果:


  • 识别思路:

      验证码包含四个宫格,每个宫格有都有一条连线经过,并且起点到终点的各个线段有箭头标识,不难计算出其一共有4*3*2*1=24种组合方式。所以把每种验证码模板保存下来,再和待识别验证码比对,就可以判断其属于哪种路径。

模板如下图,按照路径将其重命名。




  • 模板获取代码如下:

       首先导入所需要的包,以及定义微博账号密码和图片保存路径。微博账号密码可以通过淘宝购买。


[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)


      保存所有截图并进行整理过后,调用get_image()方法,得到验证码图片对象,和模板进行一一比对,若匹配成功,则将模板文件名转换为列表,如

4231.png - - > [4,2,3,1]


  • 比对方法如下:

      获取截图,与每张模板进行比对(detect_image),遍历像素(is_pixe_equal),如果相同,计数加 1 ,最后计算相同像素点占总像素的比例(same_image),若为0.99以上,代表匹配成功,返回拖动顺序(detect_image)。


[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)

[爬虫]微博宫格验证码识别(3.1)


  • 获取拖动顺序,根据其顺序拖动鼠标,连接宫格:


[爬虫]微博宫格验证码识别(3.1)


  • 命令行输出结果如下:





  • 关键字总结

      模板匹配

      os.listdir

      模拟拖动(ActionChains)

以上是关于[爬虫]微博宫格验证码识别(3.1)的主要内容,如果未能解决你的问题,请参考以下文章

滑动宫格验证码都给碰上了?没事儿,看完此文分分钟拿下!

验证码的识别

Python+scrapy爬虫:手绘验证码识别

[爬虫]验证码识别(4.1)

python--spider验证码

验证码识别图形验证码识别01