1

我知道已经有另一个非常相似的问题,但我的有点不同。问题是,您无法使用 Selenium 登录 Nike。它对我来说一直有效,但不知何故它停止了工作。我正在阅读有关如何绕过它并找到解决方案的信息,只使用较旧的 chrome 版本(我正在使用 chrome 驱动程序)。那行得通,但现在它再也没有了,耐克再次阻止了登录。我使用的旧版本是 79。很久以前对我有用的新版本现在是最新版本是 90。这是我的代码,它试图登录到耐克:

import time 
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-blink-features")
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options = chrome_options)
driver.get("https://www.nike.com/login")
time.sleep(2)
email = driver.find_element_by_xpath('//input[@type="email"]')
email.send_keys("THE-EMAIL")
password = driver.find_element_by_xpath('//input[@type="password"]')
password.send_keys("THE-PASSWORD")
button = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[7]/form/div[6]/input")
button.click()

有人知道为什么它会阻塞硒吗?我的意思是手动我可以登录,所以不是因为帐户。

4

1 回答 1

0

colossatr0n 在此线程中给出的解决方案网站可以检测到您何时将 Selenium 与 chromedriver 一起使用?为我工作。这是一个部分副本,想法是用另一个字符串替换 cdc_ 以便不被检测到:

vim /path/to/chromedriver

运行上面的代码后,你可能会看到一堆乱码。请执行下列操作:

通过键入 :%s/cdc_/dog_/g 将所有 cdc_ 实例替换为 dog_。dog_ 只是一个例子。您可以选择任何内容,只要它具有与搜索字符串相同数量的字符(例如,cdc_),否则 chromedriver 将失败。要保存更改并退出,请输入 :wq! 然后按回车。如果您需要退出而不保存更改,请输入 :q! 然后按回车。

我还必须更新该行以获取按钮:

 button = driver.find_element_by_xpath("/html/body/div[4]/div[1]/div[1]/div[1]/div[7]/form/div[6]/input")    

Selenium 成功登录!

于 2021-10-11T18:19:27.657 回答