投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!

前言:

可能大家对于豆瓣并不怎么了解,我给大家简单介绍一下。

豆瓣是一个社区网站,该网站以书影音起家,提供关于书籍、电影、音乐等作品的信息,无论描述还是评论都由用户提供(User-generated content,UGC),是Web 2.0网站中具有特色的一个网站。网站还提供书影音推荐、线下同城活动、小组话题交流等多种服务功能,它更像一个集品味系统(读书、电影、音乐)、表达系统(我读、我看、我听)和交流系统(同城、小组、友邻)于一体的创新网络服务,一直致力于帮助都市人群发现生活中有用的事物。

2012年8月,豆瓣宣布其月度覆盖独立用户数(Unique Visitors)已超过1亿,日均PV为1.6亿。 [1] 2013年第二、三季度的豆瓣月度覆盖独立用户数均达2亿,较去年同期增长一倍。 [2]

更为重要的一件事情是它是纯Python编程语言开发的!!!

所以咱们利用Python去搞定它的验证码实现模拟登陆,是有一定意义的哟!

投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!

实战:

  • Python 3.6.5 解释器
  • pycharm 编辑器
  • selenium 模块
8.png

其实利用selenium模拟登陆没什么难度的,关键在于这个豆瓣的验证码要怎么办。

经过我多次截图发现了一些规律,如下所示:

投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!
投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!

验证码方块离左边的距离永远相等,只有Y轴上下有一点变化,但是这个重要吗?

然后方块离凹槽的距离偏差只有10PX左右,那么你懂了吗?

我们只需要往右边每次移动相同的距离就可以了。然而前面所说的10px其实大家应该都懂,那个是可以忽略不计的,正常人去滑动验证码,他偶尔也有一点点偏差,没有完全重合也会提示成功!(阈值)

投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!

当然我最后去试了下,并不能够成功。确实滑到了位置上,但是它提示网络波动!

这可为难不了我,我一下就想到这个是检测到我了,因为 机器滑动是急速的,和正常人滑动是有区别的,正常人滑动应该是先加速,再减速!你可以称这个技术为轨迹。

投机取巧,利用Python解决豆瓣验证码,实现模拟登陆!

以下为Python匀加速代码:

def get_tracks(distance):
    '''
    拿到移动轨迹,模仿人的滑动行为,先匀加速后匀减速
    匀变速运动基本公式:
    ①v=v0+at
    ②s=v0t+½at²
    ③v²-v0²=2as

    :param distance: 需要移动的距离
    :return: 存放每0.3秒移动的距离
    '''
    # 初速度
    v = 0
    # 单位时间为0.2s来统计轨迹,轨迹即0.2内的位移
    t = 0.3
    # 位移/轨迹列表,列表内的一个元素代表0.2s的位移
    tracks = []
    # 当前的位移
    current = 0
    # 到达mid值开始减速
    mid = distance*4/5

    while current < distance:
        if current < mid:
            # 加速度越小,单位时间的位移越小,模拟的轨迹就越多越详细
            a = 2
        else:
            a = -3

        # 初速度
        v0 = v
        # 0.2秒时间内的位移
        s = v0*t+0.5*a*(t**2)
        # 当前的位置
        current += s
        # 添加到轨迹列表
        tracks.append(round(s))

        # 速度已经达到v,该速度作为下次的初速度
        v = v0 + a*t
    return tracks
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一袋‘和爽’下到胃里, 我的肠胃在清洗! 清……洗……! 一个小时……过去…… 我长在了厕所里…… 汗水淌过我的身...
    臻事隐阅读 556评论 3 3
  • 上回提到君子报仇,十年不晚。只可惜,八年仇人就死了。详情见点击右边链接:成也是它,败也是它,姬姜之好带你看懂齐、鲁...
    春秋无忌阅读 611评论 2 9
  • 跟朋友聊天的时候发现一个问题,就是我们这代人,好像对于“亲戚”这个词都不太感冒。对于串门走亲戚这样的事情也感到万分...
    南猫少女阅读 3,330评论 0 3
  • 1.打开当前文件 open ./ 2.命令存放到以下路径可以直接执行 系统命令 /usr/bin 自己的命令 /...
    我的昵称在不在阅读 147评论 0 0
  • 文学依然是我心中神圣而遥远的梦想,现在不是放弃,而是积蓄力量,为了更好的实现它而努力。文学使人有思想,使人深刻,愿...
    子蹊阅读 161评论 0 0