脚本实现登陆滑块

脚本实现登陆滑块

仅供学习参考,简单操作
在这里插入图片描述

你知道吗,滑动验证码居然是为了验证人类比机器人蠢而设计的。
你以为自己快速、准确地滑动拼图、对齐图案,才被允许通过,系统还说你超越了99%的用户,夸你“比闪电还快”,但实际上,机器人画得比你又快又好,系统觉得你“这么笨,肯定不是机器人”,才通过验证。
很多得知此消息的网友表示“谢谢有被侮辱到”“显得我以前小心翼翼对准的样子很心酸”。
部分代码展示:



with open('./test.js', 'r', encoding='utf-8') as f:
    js_code = f.read()
ctx = execjs.compile(js_code)


headers = {
    'Origin': 'https://login.dangdang.com',
    'Referer': 'https://login.dangdang.com/?returnurl=https%3A%2F%2Fwww.dangdang.com%2F',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
}




# 判断缺口位置 返回缺口的X坐标
def identify_gap(bg,tp,out):
    '''
    bg: 背景图片
    tp: 缺口图片
    out:输出图片
    '''
    # 读取背景图片和缺口图片
    bg_img = cv2.imread(bg) # 背景图片
    tp_img = cv2.imread(tp) # 缺口图片
    
    # 识别图片边缘
    bg_edge = cv2.Canny(bg_img, 100, 200)
    tp_edge = cv2.Canny(tp_img, 100, 200)
    
    # 转换图片格式
    bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB)
    tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB)
    
    # 缺口匹配
    res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # 寻找最优匹配
    
    # 绘制方框
    th, tw = tp_pic.shape[:2] 
    tl = max_loc # 左上角点的坐标
    br = (tl[0]+tw,tl[1]+th) # 右下角点的坐标
    cv2.rectangle(bg_img, tl, br, (0, 0, 255), 2) # 绘制矩形
    cv2.imwrite(out, bg_img) # 保存在本地
    
    # 返回缺口的X坐标
    return tl[0] 

# 调整底图大小并保存
def resize_and_save_image(path ,content, size):
    image = Image.open(BytesIO(content))
    image = image.resize(size)
    image.save(path)

解析

该文件实现了一个用于登录系统的脚本,结合了图像处理和网络请求。

  1. 导入模块:

    • 使用 PIL 处理图像,requests 进行HTTP请求,execjs 执行JavaScript代码,cv2 进行图像处理。
  2. 加载JavaScript代码:

    • .js 文件中读取并编译JavaScript代码,使用 execjs 运行。
  3. 设置HTTP头部信息:

    • 定义了请求头,包括 OriginRefererUser-Agent,模拟浏览器请求。
  4. 主要函数:

    • identify_gap(bg, tp, out): 使用OpenCV识别图像中的缺口位置,并绘制矩形框。

    • resize_and_save_image(path, content, size): 调整图像大小并保存。

    • ranKey(data): 获取随机密钥。

    • getSlidingVerifyCode(data): 获取滑动验证码。

    • save_captcha_img(url): 保存验证码图片。

    • checkSlidingVerifyCode(data): 校验滑动验证码。

    • accountLogin(data): 模拟登录。

  5. 主程序流程:

    • 获取用户名和加密后的密码。

    • 获取请求参数和随机密钥。

    • 获取滑动验证码并保存相关图片。

    • 识别缺口位置,生成点信息。

    • 校验滑动验证码,并发送最终登录请求。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AALoveTouch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值