使用 Selenium 的 Chromedriver 用户数据配置

Chromdriver UserData configuration with Selenium

我有这个简单的 Selenium 函数

def config():
    path = r'C:\Users\George\Desktop\Bot\User Data'
    options = webdriver.ChromeOptions()
    options.add_argument('user-data-dir=' + path)
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    options.add_argument('--disable-blink-features=AutomationControlled')

    driver = webdriver.Chrome(executable_path=r'C:\Users\George\Desktop\Bot\chromedriver.exe', chrome_options=options)
    return driver

它工作正常并且符合预期,但是我正在制作一个简单的机器人来在需要会话和 cookie 等的网站上执行任务。

所以我时不时要做的就是从以下位置复制真实的浏览器用户数据:

C:\Users\George\AppData\Local\Google\Chrome\User Data

到我的随机位置

'C:\Users\George\Desktop\Bot\User Data'

它工作正常,我这样做的原因是我想避免登录,并让我使用的浏览器独立于 bot 驱动程序浏览器,而且我通常把它放下,从不打开它做我的工作。

问题

感谢您的帮助,非常感谢任何建议、链接、博客。

您不需要从以下位置复制真实浏览器用户数据

C:\Users\George\AppData\Local\Google\Chrome\User Data

至:

C:\Users\George\Desktop\Bot\User Data

如果您不时将 user-data-dir 指向真实的 User Data 目录,如下所示:

def config():
    options = webdriver.ChromeOptions()
    # next line you need to replace the random location with actual browser data location
    options.add_argument(r"--user-data-dir=C:\Users\George\AppData\Local\Google\Chrome\User Data") 
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(executable_path=r'C:\Users\George\Desktop\Bot\chromedriver.exe', chrome_options=options)
    return driver

参考资料

您可以在以下位置找到一些相关的详细讨论: