这篇具有很好参考价值的文章主要介绍了Python 阿里云盾滑块验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!</td></tr></table>
记一次阿里云盾滑块验证分析并通过
操作环境
- win10 、 mac
- Python3.9
- selenium、pyautogui
分析
最近在做中国庭审公开网数据分析的时候发现每次打开一个新的页面都会触发滑块验证,就长下面这个样子
本以为使用selenium定位到滑块元素拖动即可,满心欢喜开始写代码,测试后发现还是高兴太早了~~~
貌似有点东西,原以为是因为检测到了selenium的原因,添加防检测代码
1 2 3 |
# 最新版本谷歌浏览器 绕过检测 chrome_options.add_experimental_option( 'excludeSwitches' , [ 'enable-automation' ]) chrome_options.add_argument( '--disable-blink-features=AutomationControlled' ) |
后陆续尝试过,降低chrome版本,修改chromedriver驱动文件,均不成功。
现在看来是真的有点东西!!!正在一筹莫展时,直到看到了这个
经过分析网页源码发现原来是使用了阿里云盾的人机效验,详细介绍请参考官方产品文档:阿里云验证码产品文档
分析了一波效验规则及原理,搞明白原理就好办了
解决方案
- 1.使用selenium请求url,并触发滑块验证
- 2.使用pyautogui操控鼠标滑动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def __init__( self ): chrome_options = Options() # 最新版本谷歌浏览器 绕过检测 chrome_options.add_experimental_option( 'excludeSwitches' , [ 'enable-automation' ]) chrome_options.add_argument( '--disable-blink-features=AutomationControlled' ) self .driver = webdriver.Chrome( './config/chromedriver.exe' , options = chrome_options) self .wait = WebDriverWait( self .driver, 10 , 1 ) # 设置隐式等待时间 self .driver.maximize_window() def run( self ): """程序入口""" print (f '打开首页:http://tingshen.court.gov.cn/preview' ) self .driver.get( 'http://tingshen.court.gov.cn/preview' ) # 拖动到指定位置 # 将鼠标拖动到指定的坐标;duration 的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数 pyautogui.dragTo( 1086 , 340 , duration = 1 ) # 按方向拖动 # 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟 pyautogui.dragRel( 260 , 0 , duration = 0.5 ) # 第一个参数是左右移动像素值,第二个是上下 |
效果
完美解决文章来源:https://www.toymoban.com/news/detail-676728.html
文章来源地址https://www.toymoban.com/news/detail-676728.html
到了这里,关于Python 阿里云盾滑块验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!