11.Python实现模拟人工滑动滑块验证

11 篇文章 0 订阅 ¥99.90 ¥99.00
  1. 获取验证图片

通过访问登录页面,分析源码找到完整图片和带滑块缺口的图片 ,通过 selenium 键入登录信息

  1. 获取缺口位置

通过对比原始的图片和带滑块缺口的图片的像素,计算出滑块缺口的位置,得到所需要滑动的距离

3.模拟拖动

利用selenium进行对滑块的拖拽,注意模仿人的行为:先快后慢,有个对准过程

有空完善…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
人工模拟滑块验证的爬虫代码Python有点复杂,需要使用一些第三方库来实现。下面是一个示例代码,需要注意的是,网站的具体滑块验证方式可能有所不同,需要根据实际情况进行修改。 ```python import time import random from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ec # 初始化浏览器驱动 driver = webdriver.Chrome() driver.maximize_window() # 打开目标网站 driver.get("https://www.example.com/") # 等待页面加载完成 wait = WebDriverWait(driver, 10) slider = wait.until(ec.presence_of_element_located((By.CLASS_NAME, "slider"))) # 滑块 bg = wait.until(ec.presence_of_element_located((By.CLASS_NAME, "bg"))) # 背景图片 # 获取滑块、背景图片的 X 坐标 slider_x = slider.location['x'] bg_x = bg.location['x'] # 计算滑块需要滑动的距离 distance = bg_x - slider_x # 模拟人类行为,随机生成一些鼠标移动的轨迹 tracks = [] current = 0 mid = distance * 3 / 5 while current < distance: if current < mid: offset = random.randint(1, 5) else: offset = random.randint(6, 9) tracks.append(offset) current += offset # 模拟鼠标拖动滑块 action = ActionChains(driver) action.click_and_hold(slider).perform() for track in tracks: action.move_by_offset(track, 0) action.release().perform() # 等待滑块验证完成,如果成功则跳转至目标页面 time.sleep(5) if driver.current_url == "https://www.example.com/target_page": print("验证成功") else: print("验证失败") # 关闭浏览器 driver.quit() ``` 上面的代码使用了 Selenium 库来实现模拟鼠标拖动滑块的功能。需要提前安装好 Chrome 浏览器和 ChromeDriver 驱动程序,并将其加入系统环境变量中。在运行前需要修改代码中的网站链接和滑块、背景图片的选择器等信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

香煎三文鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值