python 滑块验证码_python selenium 淘宝滑块验证码 问题

本文介绍了解决使用Selenium进行网页自动化操作时遇到的滑块验证码问题。通过修改特定的浏览器属性,如$cdc_lasutopfhvcZLmcfl标识和window.navigator.webdriver属性,来绕过网站的反爬虫检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正常打开淘宝等页面,搜索商品和滑块验证码是没有问题的,但是用selenium打开,在多次翻页后出现的滑块验证码就总是失败,无论是手动滑还是代码控制都不可以,目前正在找解决办法。。。

此问题针对多次翻页出现的滑块验证码,解决思路:

经过各种搜索资料,验证码有两个验证(2018/12/26,具体时间记不清了,这个是文件创建时间,淘宝后续还会继续反爬,此处做记录):

1.检测是否存在特有标识$cdc_lasutopfhvcZLmcfl

2.检验window.navigator.webdriver等

$cdc_lasutopfhvcZLmcfl这个属性在你的chromedriver的位置,我的是放在user/local/bin下面了,《Can a website detect when you are using selenium with chromedriver?》这篇文章介绍了如何更改$cdc_asdjflasutopfhvcZLmcfl,用vim更改(如果懒得改,网盘链接:https://pan.baidu.com/s/1q18FQMeciArjb5Wo0JtaSA 密码:vr3h)

对于window.navigator.webdriver属性,网上有很多方法,可以用await异步,也可以用mitmproxy代理,这两种方法我没有用到,目的就是为了改window.navigator.webdriver属性,所以,还是注入js比较简单:

browser.get(url)

js1= '''Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) '''

js2= '''window.navigator.chrome = { runtime: {},  }; '''

js3= '''Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] }); '''

js4= '''Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3, 4, 5,6], }); '''

browser.execute_script(js1)

browser.execute_script(js2)

browser.execute_script(js3)

browser.execute_script(js4)

此时,淘宝的这两个验证就已经更改了,下面 就是 开始滑动滑块儿了(代码百度吧有很多)

这里需要注意一点,滑动的轨迹一定要随机,如果是同一轨迹,就会失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值