hk_data_b64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(22);",hk_element)
yt_data_b64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(22);",yt_element)
#解码
img_data = base64.b64decode(img_data_b64)
hk_data = base64.b64decode(hk_data_b64)
yt_data = base64.b64decode(yt_data_b64)
#以二进制保存
with open("./imgs/bg.png","wb") as f:
f.write(img_data)
#print("[*]滑块验证码背景图已保存")
with open("./imgs/hk.png","wb") as f:
f.write(hk_data)
#print("[*]滑块验证码滑块图片已保存")
with open("./imgs/yt.png","wb") as f:
f.write(yt_data)
#print("[*]滑块验证码原图已保存")
print("[*]保存滑动验证码成功")
提取出来如下图所示,(hk\_jg.png是下一个模块处理后的结果,不用管)
计算距离的主要需要图片就是通过hk.png处理后的hk\_jg.png和bg.png两个图片

接下来处理hk.png为hk\_jg.png
直接传入hk.png这种图片的路径,可以实现将带有白框的图片截取成只有图片的最小方框,例如:

这么多白框的图片变成下图这种

代码实现如下所示
def hk_chuli(hk_img):
“”"
处理滑块图片
:return:
“”"
image = Image.open(hk_img) # 打开tiff图像
ImageArray = np.array(image)
row = ImageArray.shape[0]
col = ImageArray.shape[1]
# 先计算所有图片的裁剪范围,然后再统一裁剪并输出图片
x_left = row
x_top = col
x_right = 0
x_bottom = 0
for r in range(row):
fo