python爬虫滑块验证破解(python破解移动滑块)

1年前 (2023-10-22)阅读105回复0
王大为
王大为
  • 注册排名10016
  • 经验值0
  • 级别
  • 主题0
  • 回复0
楼主

近来,网上有不少关于通过Python破解移动滑块验证的方法,让人不可思议。而这种技术是如何实现的呢?下面,我就来简单介绍一下。

首先,对于网页上的滑块验证,一般是通过Javascript来实现的。实际上,Javascript是有漏洞的,在滑块移动的过程中,可以通过一些技术手段来获取到相关的参数信息。这些参数信息包括滑块的位置和大小,以及验证通过后的token值等等。

接着,利用Python的selenium或requests等库,可以模拟用户的操作,将自动抓取的参数信息传递给服务器进行验证,从而“破解”了滑块验证。

#示例代码
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# 设置浏览器
option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = webdriver.Chrome(options=option)
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () =>undefined
})
"""
})
# 访问指定页面
browser.get('http://xxxx')
time.sleep(2)
# 找到滑块元素
slide_block = browser.find_element_by_class_name('slide_block')
# 找到验证通过后的token值
token = browser.execute_script('return ___TOKEN___')
# 计算拖动距离和速度
distance = slide_block.size['width']
duration = 0.5 * distance / 1000
# 拖动滑块
ActionChains(browser).click_and_hold(slide_block).pause(duration).move_by_offset(distance, 0).release().perform()
time.sleep(2)
# 提交验证信息
browser.execute_script('''
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "/verify");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("__TOKEN__=" + token);
''')
time.sleep(2)
# 关闭浏览器
browser.close()

总的来说,Python破解移动滑块验证是通过自动化手段来完成的。而随着滑块验证的不断升级,相信也会有更多的技术来对抗这种破解方法。因此,在使用这类技术时,一定要注重实用性和合法性,不要进行任何违法操作。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/2218.html

0
回帖

python爬虫滑块验证破解(python破解移动滑块) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息