使用Racket破解网易易盾滑动验证码


准备工作
安装Racket和相关库
首先,你需要安装Racket。如果你还没有安装,可以访问Racket官网进行安装。

我们仍然需要使用cURL来处理HTTP请求,并且需要Python脚本来调用Selenium和OpenCV。

在终端中运行以下命令安装依赖:

sh

sudo apt-get install racket
sudo apt-get install curl
验证码页面
验证码页面地址:https://dun.163.com/trial/jigsaw

代码实现
1. 初始化Selenium
由于Racket也不直接支持Selenium和OpenCV,我们将通过调用外部Python脚本来实现这一部分。以下是Python脚本的实现。

Python脚本(captcha_solver.py)
python

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
import cv2
import numpy as np

def get_screenshot(driver):
    driver.save_screenshot('screenshot.png')
    img = cv2.imread('screenshot.png')
    return img

def get_gap(bg_img, tp_img):
    result = cv2.matchTemplate(bg_img, tp_img, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
    return max_loc[0]

def simulate_drag(driver, element, distance):
    action = ActionChains(driver)
    action.click_and_hold(element).perform()
    action.move_by_offset(distance - 5, 0).perform()
    action.move_by_offset(5, 0).perform()
    action.release().perform()

def main():
    url = 'https://dun.163.com/trial/jigsaw'
    driver = webdriver.Chrome()
    driver.get(url)
    time.sleep(2)

    bg_img = get_screenshot(driver)
    tp_img = cv2.imread('template.png', 0)

    distance = get_gap(bg_img, tp_img)
    
    slider = driver.find_element_by_class_name('slider')
    simulate_drag(driver, slider, distance)

    time.sleep(5)
    driver.quit()

if __name__ == "__main__":
    main()
2. 使用Racket调用Python脚本
我们将在Racket中调用这个Python脚本。

Racket脚本(captcha_solver.rkt)
racket

#lang racket

(define (solve-captcha)
  (system "python3 captcha_solver.py"))

(displayln "开始破解验证码...")
(solve-captcha)
(displayln "验证码破解完成")
运行脚本
先确保你已经安装了必要的Python依赖(selenium和opencv-python)。

sh

pip install selenium opencv-python
运行Racket脚本。

sh

racket captcha_solver.rkt

更多内容联系q1436423940

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值