反反爬之js检测selenium篇(某宝登录)
生活随笔
收集整理的這篇文章主要介紹了
反反爬之js检测selenium篇(某宝登录)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
聲明:本文僅作為學習交流使用,如果侵犯了您的權益請聯系我刪除。
#使用selenium模擬淘寶登錄,會無法通過滑塊驗證 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import timedriver = webdriver.Chrome() driver.get(url='https://login.taobao.com') J_Quick2Static = driver.find_element_by_id('J_Quick2Static') J_Quick2Static.click() TPL_username_1 = driver.find_element_by_id('TPL_username_1') TPL_password_1 = driver.find_element_by_id('TPL_password_1')TPL_username_1.send_keys('測試賬號1') TPL_password_1.send_keys('1234567') time.sleep(1)captcha = driver.find_elements_by_xpath('//div[@id="nocaptcha" and @style]')if captcha:button = driver.find_element_by_id('nc_1_n1z')ActionChains(driver).click_and_hold(button).perform()ActionChains(driver).move_by_offset(258, 0).perform()ActionChains(driver).release(button).perform()login_button = driver.find_element_by_id('J_SubmitStatic')login_button.click()time.sleep(5) else:print('不需要驗證碼')login_button = driver.find_element_by_id('J_SubmitStatic')login_button.click()time.sleep(5) driver.quit()上述代碼正常情況下會被js檢測到使用了selenium,從而導致無論怎么滑動滑塊驗證碼都不會驗證通過。
#用于檢測selenium的js地址:https://g.alicdn.com/secdev/sufei_data/3.6.8/index.js function r() {return "$cdc_asdjflasutopfhvcZLmcfl_"in u || f.webdriver}如果你在selenium打開的瀏覽器的console控制臺中輸入navigator回車,你發現其中有個webdriver屬性為true,而正常打開的瀏覽器卻不會有這個屬性。這是因為Chrome從v63版本開始添加了這一屬性,只要通過selenium調用了瀏覽器便會將這個屬性設置為true。
解決方案:
步驟1.使用低于v63版本的Chrome(v62.0.3202.62版本測試通過),當然也不要忘了將chromedriver換成對應版本。
步驟2.對于Mac/Linux系統:使用vim將chromedriver的"$cdc_asdjflasutopfhvcZLmcfl_"這個key進行等量替換掉。Windows系統:則需要修改對應源碼后編譯。
按照上述方案操作以后再去測試本文開頭的代碼便可以通過滑塊驗證,以上方法也可以用于模擬大魚號的登錄(阿里系)。
注:以上代碼只能在webdriver有界面的情況下運行通過。
總結
以上是生活随笔為你收集整理的反反爬之js检测selenium篇(某宝登录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python模拟ps中的素描工具
- 下一篇: 火车模型发布模式:敏捷和稳定