如何让这个Selenium脚本在不被检测到的情况下登录?

问题描述 投票:0回答:2

在将其作为重复项删除之前,我已经尝试了此处提供的所有选项:是否有无法检测到的 Selenium WebDriver 版本?.

我正在尝试用 Python 创建一个 Selenium 机器人,它可以成功登录,而不会因机器人检测而被阻止。我当前的脚本如下,我创建了一个测试帐户,任何人都可以访问并帮助我完成这项工作。理想情况下,这里的正确答案是我可以使用的该脚本的工作版本。

用户名:TestAccount
密码:StackOverflowPass1

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time
 
##### open depop 'likes' page #####

url = "https://www.depop.com/login/"

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)

driver.implicitly_wait(2)
driver.get(url)
time.sleep(2)

accept_cookies = driver.find_element_by_xpath('/html/body/div[1]/div/div[3]/div[2]/button[2]')
accept_cookies.click()
time.sleep(2)

username = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/form/div[1]/input')
username.send_keys('TestAccount1')

password = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/form/div[3]/div/input')
password.send_keys('StackOverflowPass1')

login_button = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/form/button')
login_button.click()
selenium selenium-webdriver webdriver
2个回答
2
投票

我在登录 Gmail 时遇到了同样的问题。我花了一个星期都无法解决这个问题。我 99% 确信您无法绕过机器人检测。我是如何解决的:

我已经创建了 Chrome 帐户,我的 Gmail 将始终登录该帐户(禁用 2FA)。然后我以该用户身份启动 chrome。当我已经登录 Gmail 时,机器人检测不再是问题。也许您应该尝试相同的操作,将此命令添加到您的驱动程序类中:

options.add_argument("user-data-dir=/Users/alexiseggermont/Library/Application Support/Google/Chrome/Default/")

此路径适用于 Mac 或 Linux 操作系统。另外,将“默认”重命名为您的个人资料 ID(对我来说,在大多数情况下,它是“个人资料 1”)


0
投票

我尝试了上面的方法,但是 Chrome 会崩溃并且无法访问驱动程序。你遇到过这种情况吗?谢谢

© www.soinside.com 2019 - 2024. All rights reserved.