美文网首页
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