首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用--用户-数据-dir=铬-数据铬选项实现无头模式

如何使用--用户-数据-dir=铬-数据铬选项实现无头模式
EN

Stack Overflow用户
提问于 2022-05-01 08:34:31
回答 2查看 607关注 0票数 0

我使用python来实现测试。我需要保持登录过程,这样我就不会每次都登录。我使用add_argument(“--用户-数据-dir= chrome”)来保存铬数据,但是当我想使用无头模式时,保存的数据没有保持登录过程。

代码语言:javascript
复制
class Browser:
def __init__(self, headless):
    self.chrome_options = webdriver.ChromeOptions()
    self.chrome_options.headless = headless
    self.chrome_options.add_argument('--hide-scrollbars')
    self.chrome_options.add_argument('--disable-gpu')
    self.chrome_options.add_argument("--log-level=3")
    self.chrome_options.add_argument("--user-data-dir=chrome-data")
    self.chrome_options.add_argument('profile-directory=profile')
    self.chrome_options.add_experimental_option("detach", True)
    self.driver = webdriver.Chrome(executable_path="./chromedriver", options=self.chrome_options)
    self.driver.implicitly_wait(10)
    self.driver.maximize_window()
EN

回答 2

Stack Overflow用户

发布于 2022-05-11 23:33:32

我最近也有同样的问题。据我所知,无头和非无头铬有两个单独的用户数据,即使你指定了同一个文件夹(错误?特征?很难分辨,即使是在谷歌搜索之后)。对此我无能为力。

总之,这是我最后所做的。首先,添加以下内容:

代码语言:javascript
复制
chrome_options.add_argument('--remote-debugging-port=9222')

然后,访问页面并给自己5分钟登录的代码:

代码语言:javascript
复制
driver.get("http://instagram.com")
time.sleep(300)

当运行代码时,在等待阶段,转到您通常的Chrome (非匿名),即chrome:// the页面。应该已经预先配置了它--应该启用“发现网络目标”,如果您按下“配置.”,"localhost:9222“应该已经在列表中了(如果没有,添加它并启用复选框)。下面,您应该看到您的活动浏览器会话,按“检查”,窗口将打开,呈现您的无头浏览器所拥有的内容。就像这样:图像

所以是的,在您的第一次尝试,这样做,登录到您的呈现会话,然后它应该保存,您应该能够继续工作之后。

实际上,我注册是为了感谢可以打开/显示/呈现无头硒会话吗?的凯尔,因为他提到,自从Chrome100之后,就有了Chrome100,而不是http://localhost:9222 (后者只显示了一个白色屏幕,我想知道为什么不能工作)。所以我想感谢他,但是stackoverflow说我没有足够的“声誉”或者其他什么。哦,好吧。因此,我决定就最近的一个相关问题写一封回信。如果能帮上忙就告诉我!

票数 2
EN

Stack Overflow用户

发布于 2022-05-01 15:34:35

使用无头铬时,一些网站会检测无头模式,防止自动上身。

将此添加到您的铬选项中

代码语言:javascript
复制
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36")

这应该会改变您的用户代理,并且应该在autologin中提供帮助,如果问题仍然存在,您应该尝试指定默认的chrome配置文件目录。

代码语言:javascript
复制
self.chrome_options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile

你应该用这个

代码语言:javascript
复制
self.chrome_options.add_argument("--headless")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72075183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档