python爬虫滑动验证码_爬虫:滑动验证解决方法及python实现

本文介绍如何使用Python的selenium库解决爬虫遇到的滑动验证码问题。通过操作浏览器,对比原始图片和缺口图片,计算缺口位置,并模拟拖动滑块进行验证。详细步骤包括:分析验证码机制,隐藏拼接小方块以获取完整原图,截取图片,比对图片找到缺口,计算滑动轨迹并模拟滑动。最后,文章提供了相关功能性函数的实现代码。
摘要由CSDN通过智能技术生成

爬虫时遇到滑动验证,基本思路是通过selenium操作浏览器,将滑动验证的原始图片和缺口图片进行对比,找出缺口位置,然后在利用selenium模拟拖动滑块,达到验证的目的。下面就以猪八戒网为例,进行操作。

一、分析

首先访问 https://account.zbj.com/login:

登陆页面主要为上图。

点击按钮(div标签,类名为 geetest_radar_tip)后,出现滑动验证码:

这个滑动验证图片并没有原始图片,直接出现的就是缺口图片。而我们要找的就是深色缺口的位置。

观察图片标签,找到 这个标签,如果把该标签设置的display属性设置为none,则验证图则会变为下图:

拼接的小方块隐藏掉了,这张图片更容易让我们与原图比对。

然后再找到这个标签,将display设置为block:

原图显示出来,我们可以将上面两张图片的滑动验证图片进行截取,比对,即可找到缺口位置。

实现过程中要注意几点:

1.selenium在加载后,不要立即寻找标签,因为如果标签没有加载完成,会找不到,这样就会抛出错误。

2.截图的大小可以跟浏览器的内显示的大小不一样,需要计算浏览器显示大小与截图大小的比例。

3.进行滑动时,要先加速后减速,如果一直匀速,会被网站识别。

二、实现

1、导入相关要用的包:

from selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.support importexpected_conditions as ECfrom selenium.webdriver.support.wait importWebDriverWaitfrom PIL importImagefrom six importBytesIOimporttimefrom selenium.webdriver import ActionChains

2.主函数:

if __name__ == '__main__':

browser=get_url('https://account.zbj.com/login','111111111

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值