我有一个硒的简单函数
def config():
path = r'C:UsersGeorgeDesktopBotUser 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:UsersGeorgeDesktopBotchromedriver.exe', chrome_options=options)
return driver
这很好,正如预期的那样,但我正在制作一个简单的机器人来通过一个需要会话和cookie等的网站执行任务。
因此,我必须不时地复制真实的浏览器用户数据:
C:UsersGeorgeAppDataLocalGoogleChromeUser Data
到我的随机位置
'C:UsersGeorgeDesktopBotUser Data'
它工作得很好,我这样做的原因是我想避免登录,让我使用的浏览器与机器人驱动程序浏览器独立,我通常会把它放下来,在工作时从不打开。
问题
- 有没有一种方法,我可以自动获得复制文件的当前会话瞬间(比如获得一个打开的选项卡,并附上所有信息(
- 有更好的方法吗?(我相信有很多更好的方法(
感谢您的帮助,任何建议,链接,博客都非常感激。
您不需要从复制真实的浏览器用户数据
C:UsersGeorgeAppDataLocalGoogleChromeUser Data
至:
C:UsersGeorgeDesktopBotUser Data
如果您将user-data-dir
指向真实的googlechrome用户数据目录,则会不时执行以下操作:
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:UsersGeorgeAppDataLocalGoogleChromeUser 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:UsersGeorgeDesktopBotchromedriver.exe', chrome_options=options)
return driver
参考文献
你可以在中找到一些相关的详细讨论
- Selenium:指向默认Chrome会话