一、使用chrome浏览器,浏览器驱动与浏览器版本必须一致,浏览器驱动下载好后放在python安装目录下的scripts文件夹里文章来源:https://www.toymoban.com/news/detail-504456.html
二、可以跳过滑动验证码,代码如下:文章来源地址https://www.toymoban.com/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'])
#进入开发者模式,去除滑块验证
option.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=option)
# 使用 CDP(即 Chrome Devtools-Protocol,Chrome 开发工具协议)来解决这个问题,
# 通过 CDP 我们可以实现在每个页面刚加载的时候执行 JavaScript 代码,
# 执行的 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登录某宝跳过反爬监测及滑块验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!