python selenium破解极验3滑动验证码

python selenium破解极验3滑动验证码,解决物理公式不可用的问题

一、采用物理加速度公式算法

def get_track(self, distance):
    """
    获取滑块移动轨迹的列表
    :param distance: 第二个缺块的左侧的x坐标
    :return: 滑块移动轨迹列表
    """
    track = []
    current = 2
    mid = distance * 1 / 2
    mid0 = distance * 1 / 4
    mid1 = distance * 1 / 8
    t = 0.2
    v = 50
    distance += 10  # 使滑块划过目标地点, 然后回退
    while current < (distance - 10):
        if current < mid1:
            a = random.randint(4, 10)
        elif current < mid0:
            a = -random.randint(6, 8)
        elif current < mid:
            a = random.randint(4, 10)
        v0 = v
        v = v0 + a * t
        s = v0 * t + 0.5 * a * t * t
        current += s
        a = -random.randint(6, 7)
        track.append(round(s))
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    track<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token operator">-</span>random<span class="token punctuation">.</span>randint<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    track<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token operator">-</span>random<span class="token punctuation">.</span>randint<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span>

<span class="token keyword">return</span> track

注意此方法已经不可用,会被识别出来,结果会显示图片被怪物吃掉了。

二、采用轨迹离散分布生成的算法

# 轨迹公式,也可采用其他公式
def ease_out_quart(self, x):
    return 1 - pow(1 - x, 4)

def get_tracks_2(self, distance, seconds, ease_func):
“”"
根据轨迹离散分布生成的数学 生成
成功率很高 90% 往上
:param distance: 缺口位置
:param seconds: 时间
:param ease_func: 生成函数
:return: 轨迹数组
“”"

distance += 20
tracks = [0]
offsets = [0]
for t in np.arange(0.0, seconds, 0.1):
ease = ease_func
offset = round(ease(t / seconds) * distance)
tracks.append(offset - offsets[-1])
offsets.append(offset)
tracks.extend([-3, -2, -3, -2, -2, -2, -2, -1, -0, -1, -1, -1, -1, -2, -1]) #可以自己按情况改
return tracks

这种方法成功率很高,破解极验3滑动验证码没什么问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值