selenium滑动验证

	半年多没发过博客了,这段时间也搞了很多东西,也算是成长了那么一丢丢。今天就来聊一下关于爬虫滑动验证。
	这段时间搞某航空网站,查询时候,会让登陆,点击登陆后,会弹出滑动验证码,简单上个图,让大家看下验证码的样子,如下:
  1. selenium滑动验证_第1张图片

    呵呵哒,滑块验证,简单跟大家聊下思路。
    先聊一下常见的极验的两个版本,第一个,是有背景图的,也就是当不点击滑块按钮的时候,页面背景图是没有滑块缺口的,点击一下就有了,这个现在找不到图片了,大家自行脑补。第二个,就是上面的这张图片,上来就是缺口,没有背景图。
    本次就以没有背景图的方式进行讲解。说一下本次的思路。因为没有背景图,所以我们得找一张可以充当背景图的图片当做背景图。怎么办?就将滑块滑到最右边,但是这样有一个限制条件,滑块缺口在最靠右最好,因为滑块缺口位置直接影响我们代码的执行。上一张我截得图,如下:selenium滑动验证_第2张图片
    我们就将此图作为背景图,但是一个网站可能有多个背景图,但是不会太多,这就需要自己想办法截图了。
    说一下对比像素的时候需要注意的点:我们可以看到,图片中有颜色较深点的缺口,和颜色不太深的缺口,我们就需要确定颜色不太深的缺口它的三原色的容差(不是专有名词,我自己起的),如何确定?很简单。登陆微信,使用ctrl+a进行截图,将截图点点到颜色不太深的地方,会显示此点的横纵坐标以及三原色的值。然后我们在背景图的相同位置也进行如此操作,记下三原色,一定要多找不同的背景图进行测试,确定容差,因为颜色比较浅的三原色的值不会比真正的缺口三原色大。当进行多次测试之后,我们可以得出颜色较浅的缺口有个最大值,很多人看到网上的代码都有这个值,但是不知道是怎么来的,这个值就是这么来的。所以我们根据遍历背景图和当前的验证码图片相同位置的三原色的差值是否大于我们测量的那个颜色较浅的值,来确定是不是我们滑块的缺口。以此来判定此点是不是需要滑动的起始位置。基本思路就是这样,代码不多,下边附图:
    selenium滑动验证_第3张图片
    selenium滑动验证_第4张图片
    selenium滑动验证_第5张图片
    selenium滑动验证_第6张图片
    selenium滑动验证_第7张图片
    selenium滑动验证_第8张图片

你可能感兴趣的:(滑块验证)