Python对旋转图片验证码的识别和破解
本文主要使用python + selenium来破解旋转突破的验证码;其中用到numpy和OpenCV(CV2)来进行图片拼接,转换,遮罩,识别等,共分三个部分:
(三)将旋转角度转换为拖动距离,并生成拖动轨迹,并拖动滑块
-
找到滑块和滑块容器
-
将角度转换为移动距离
js_code = '''
w1 = document.getElementsByClassName('control-tips')[0].clientWidth; //滑块容器宽
w2 = document.getElementsByClassName('control-btn slideDragBtn')[0].offsetWidth; //滑块宽
zoom = (w2-w1)/360;
return zoom
'''
zoom = driver.execute_js(js_code)
distance = int(zoom * angle) # 角度转换为滑块拖动距离,
# distance = int(zoom * (360-angle)) 有的滑块拖动是逆时针旋转则angle = 360-angle
- 生成移动轨迹
模拟手动拖动时,加速再减速的过程,又时候会拖过去再返回,代码优化了网上滑动验证码类似轨迹计算
def get_track(distance:int)->list: