美文网首页
python爬虫之轨迹算法

python爬虫之轨迹算法

作者: 小明阿婆 | 来源:发表于2021-02-23 15:59 被阅读0次



爬虫的一大难点就是破解验证码。验证码大致上分为文字识别、滑动、文字点击、图像识别等,本文讲的是其中的滑动验证码。滑动验证码,需要我们将滑块移至图片缺口位置。实际上我们可以通过对比完整图片和缺口图片各个像素点的RGB值,得出缺口位置左上角的坐标,然后构造轨迹算法使用selenium模拟移动滑块即可。

滑动验证码破解大致流程为:

1 - 获取缺口图片与原图片
2 - 图像对比,得出缺口左上角坐标
3 - 构造轨迹算法
4 - 使用selenium模拟移动滑块



本篇主要针对构造轨迹算法进行探讨。

使用工具:python,selenium,chromedriver,chrom浏览器

操作步骤讲解环节


下面就是喜闻乐见的操作步骤讲解环节了(´◔౪◔)



代码部分:

def get_track(distance):
    # 轨迹
    track = []
    # 设置一个分隔线,之前为匀加速运动,之后为匀减速运动
    mid = distance*4/5
    # 用于记录当前的移动距离
    current = 0
    # 时间间隔
    t = 0.2
    # 初速度
    v = 0

    while current < distance:
        if current < mid:
            a = 2
        else:
            a = -3
        v0 = v
        v = v0 + a * t
        move = v * t + 1/2 * a * t * t
        current += move
        # round(x)四舍五入
        track.append(round(move))
    return track

if __name__ == '__main__':
    track = get_track(108) # 参数就是前一篇文章中得到的gap_x
    print(track)
# [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3]
# 表示每0.2秒移动一小段



要点总结:
1 - 因为人类无法做到完全匀速拖到,极验会识别出匀速拖动的是程序操作,所以我们还需要构造一个轨迹移动算法。
2 - 我们构造的是一个先匀加速后匀减速的轨迹。需要用到几个简单的物理公式。







那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下;不喜欢的话可以去看下小编的其他文章,肯定有喜欢的;都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧

有疑问的小伙伴也可以在评论区留言哦,我会第一时间解答的。





你点了吗◔ ‸◔?

相关文章

网友评论

      本文标题:python爬虫之轨迹算法

      本文链接:https://www.haomeiwen.com/subject/fkorfltx.html