验证码的话是极验3代三代的一个点选,难度不高!目前有很多种方式来识别验证。如果不想自己训练模型的话可以选择三方的平台
首先,我们进入到答题页面,每一道题刷新或者进入下一道题统一走如下接口,如下所示:
可以看到接口check是提交答案的发包接口,其中ans_key字段则是上面说到的hash字段,在提交答案后,我们需要取判断提交的回答是否正确,在响应JSON的数据中通过is_right字段去检验,如下所示:
{"code":0,"message":"0","ttl":1,"data":{"passed":true,"is_right":true,"ans_right":"a5d259743588549bdb6d98bf4fe50201"}}3.点选验证分析这个自动答题的自动化流程中,难点在于答题过程中出现的点选验证码!这个跟行为无关,就算是手动去答题也是会在几道后出现的。我们现在来分析一下验证码的接口,如下:
可以看到validate验证码验证接口所提交的参数,即是上面register接口响应内的。通过调用训练好的验证码识别模型进行点选验证,验证成功通过is_valid来区分,如下所示:
然后拿register接口内给的token字段去提交当前出现验证码的题,即可通过!如下所示:
这个地方其实可以有更加好的方案!比如我们先去收集一个庞大且完整的题库,让答题更加精准!因为枚举的方式太过于机器人化,也是会有风控的!或者让选择更加的随机化以及对接AI去完成答题都是比较好的一个方案(感兴趣自行去研究尝试)
接下来,继续实现check接口提交答案代码,这部分就需要对接点选验证码的处理了,因为在页面上触发验证码也是在提交选项的时候出现。代码实现如下所示:
THE END