一、使用chrome瀏覽器,瀏覽器驅動與瀏覽器版本必須一致,瀏覽器驅動下載好后放在python安裝目錄下的scripts文件夾里文章來源:http://www.zghlxwxcb.cn/news/detail-504456.html
二、可以跳過滑動驗證碼,代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-504456.html
from selenium.webdriver.common.by import By
from lib2to3.pgen2 import driver
from selenium import webdriver
#隱藏 WebDriver 提示條和自動化擴展信息
option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
#進入開發(fā)者模式,去除滑塊驗證
option.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=option)
# 使用 CDP(即 Chrome Devtools-Protocol,Chrome 開發(fā)工具協(xié)議)來解決這個問題,
# 通過 CDP 我們可以實現(xiàn)在每個頁面剛加載的時候執(zhí)行 JavaScript 代碼,
# 執(zhí)行的 CDP 方法叫作 Page.addScriptToEvaluateOnNewDocument,然后傳入上文的 JavaScript 代碼,
# 這樣我們就可以在每次頁面加載之前將 webdriver 屬性置空了,網站檢測不到window.navigator.webdriver屬性
# Object.defineproperty 的作用就是直接在一個對象上定義一個新屬性,或者修改一個已經存在的屬性
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' })
#訪問某寶
driver.get('https://www.taobao.com')
driver.maximize_window()
if driver.find_element(by=By.PARTIAL_LINK_TEXT,value='親,請登錄'):
driver.find_element(by=By.PARTIAL_LINK_TEXT,value='親,請登錄').click()
driver.find_element(by=By.NAME,value='fm-login-id').send_keys('賬戶') #輸入賬戶
driver.find_element(by=By.NAME,value='fm-login-password').send_keys('密碼') #輸入密碼
driver.find_element(by=By.XPATH,value='//*[@id="login-form"]/div[4]/button').click()
到了這里,關于selenium登錄某寶跳過反爬監(jiān)測及滑塊驗證的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!