python 滑块验证码_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)
此時,淘寶的這兩個驗證就已經更改了,下面 就是 開始滑動滑塊兒了(代碼百度吧有很多)
這里需要注意一點,滑動的軌跡一定要隨機,如果是同一軌跡,就會失敗
總結
以上是生活随笔為你收集整理的python 滑块验证码_python selenium 淘宝滑块验证码 问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中bin存放什么文件格式(Li
- 下一篇: excel如何求平均值