python selenium 淘宝滑块验证码 问题

正常打开淘宝等页面,搜索商品和滑块验证码是没有问题的,但是用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)

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在前面一篇博客,介绍了 Selenium 的基本用法和爬虫开发过程中经常使用的一些小技巧,利用这些写出一个浏览器爬...
    FifiZhuang阅读 13,788评论 4 81
  • 《常回家看看》的一首歌唱热火了好一段时间,在社会上引起一定的共鸣,说明一定数量的人不常回家看看了。 近两三年坦人确...
    坦人阅读 5,396评论 37 48
  • 你以为在如今这个世道,梦想二字早已被糟蹋的面目全非? 至少在印度不是。因为那里大多数的姑娘们从生下来就不被当成一个...
    吃不吃花阅读 3,655评论 0 1
  • 1、与老公偷偷的去吃火锅,聊聊开心与不开心的事 2、与女儿一起洗澡,哈哈有大臣旁边伺候着 3、早上一件小事老公讲我...
    宁静的流星阅读 1,540评论 0 0
  • 高考填志愿的时候拼命地向往外逃,离开这个物是人非的地方越远越好,没有理由的嫌弃自己熟悉的城市。 那时候想得也简单,...
    Millions若风和弦阅读 3,921评论 13 4