0


selenium登录某宝跳过反爬监测及滑块验证

一、使用chrome浏览器,浏览器驱动与浏览器版本必须一致,浏览器驱动下载好后放在python安装目录下的scripts文件夹里

二、可以跳过滑动验证码,代码如下:

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 python chrome

本文转载自: https://blog.csdn.net/weixin_54693379/article/details/126513756
版权归原作者 深度学习,深度睡眠 所有, 如有侵权,请联系我们删除。

“selenium登录某宝跳过反爬监测及滑块验证”的评论:

还没有评论