python爬虫-滑动验证码

本文介绍了Python如何处理滑动验证码,特别是极验验证。通过selenium驱动浏览器模拟用户行为,包括获取和处理图片,计算滑动距离和轨迹,实现自动化滑动验证。同时提到了利用Chrome用户数据来绕过登录的技巧。
摘要由CSDN通过智能技术生成

1. 滑动验证码

说到滑动验证码,一定一定要提某验,虽然说市面上关于滑动验证码的产品有很多,但是某验的地位就像 10 年前脑白金在保健品市场的地位一样,业界标杆啊。

它越牛逼,市场上用它做防护的网站也越多,像国家企业信用信息公示系统、B 站、京东等等。

像某验的解决方案也有很多,不过原理大同小异。

1.1 简单滑动验证码

目标网址:https://member.zjtcn.com/common/login.html

一般来说我们与页面的交互可以使用Webelement的方法来进行点击等操作。

但是,有时候我们需要一些更复杂的动作,类似于拖动,双击,长按等等。

这时候就需要用到我们的 Action Chains(动作链)了。

2. 极验验证

极验官网:http://www.geetest.com/

现在极验验证码已经更新到了 3.0 版本,截至 2017 年 7 月全球已有十六万家企业正在使用极验,每天服务响应超过四亿次,广泛应用于直播视频、金融服务、电子商务、游戏娱乐、政府企业等各大类型网站

对于这类验证,如果我们直接模拟表单请求,繁琐的认证参数与认证流程会让你蛋碎一地,我们可以用selenium驱动浏览器来解决这个问题,大致分为以下几个步骤

1、输入用户名,密码

2、点击按钮验证,弹出没有缺口的图

3、获得没有缺口的图片

4、点击滑动按钮,弹出有缺口的图

5、获得有缺口的图片

6、对比两张图片,找出缺口,即滑动的位移

7、按照人的行为行为习惯,把总位移切成一段段小的位移

8、按照位移移动

9、完成登录

步骤大致是将缺口图和原图进行对比获取缺口的横坐标,并使用计算完成拖动轨迹模拟,之后使用 selenium 按照轨迹滑动完成缺口的拼接。

这一类方法的优点是门槛低,原理简单,缺点是完成滑动耗时较长,成功率无法估计(同一轨迹计算规则使用多次后成功率迅速下降)

2.1 滑动验证

目标网址:http://www.cnbaowen.net/api/geetest

位移移动相当于匀变速直线运动,类似于小汽车从起点开始运行到终点的过程(首先为匀加速,然后再匀减速)。

其中a为加速度,且为恒量(即单位时间内的加速度是不变的),t为时间

2.1.1 获取图片

def get_image(driver, div_path):
    """
    下载无序的图片  获得所有图片的偏移值
    :param driver: 传入浏览器对象
    :param div_path: 根据xpath提取图片,传入xpath规则
    :return: 返回一个文件缓存对象 和 图片的偏移值
    """
    time.sleep(2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值