我想用selenium自动去观看学习视频,整体已经做完了。
但是我想加个功能,就是能够隐藏浏览器页面的同时,观看视频
经过搜索,我确定了隐藏的方法,就是:
option.add_argument('--headless')
option.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=option)
确实可以隐藏,但是问题是不能自动通过已经保存的cookie登陆了。
代码大概是这样的:
option.add_argument('--headless')
option.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=option)
driver.delete_all_cookies()
# 添加cookie
with open(‘cookies.txt', 'r') as f:
cookies_list = json.load(f)
for cookie in cookies_list:
if isinstance(cookie.get('expiry'), float):
cookie['expiry'] = int(cookie['expiry'])
driver.add_cookie(cookie)
driver.refresh()
按理说,到此为止,浏览器会进入已经登陆的界面
我在显示浏览器(就是把前2行代码删掉)时候是正常的,也证明了这一点。
但是,如果把浏览器隐藏,就不能进入已经登陆的界面
我用driver.page_source看了下,此时的浏览器确实没有登陆,而且处于一个以前没见过的页面,里面有让输入账号、密码的地方,但是和我普通点到的输入页面不同
我想知道这个问题怎么解决,还是说,使用隐藏界面方式,不能使用cookie?
再次强调,cookie是没问题的,有界面时是正常的
加上一个参数就好user-data-dir,这里举个例子(然后按照如下所示路径找到自己的User Data,把这个路径按照如下所示的代码加入参数):
option.add_argument(r"user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data")