使用Puppeteer的userDataDir导致Chrome现有数据被清除求助
解决Puppeteer使用userDataDir导致Chrome配置重置的问题
你直接用了Chrome的默认用户数据目录作为Puppeteer的userDataDir,这是问题的核心——同一个用户数据目录不能同时被本地正常运行的Chrome和Puppeteer启动的Chrome实例共用。当两个进程同时访问该目录时,Chrome会触发安全保护机制,直接重置配置文件以避免数据损坏。
解决步骤:
- 先关闭本地正在运行的Chrome,防止文件被锁定无法复制
- 复制Chrome默认用户数据目录到一个新的独立路径,比如:
/Users/[user-name]/Library/Application Support/Google/Chrome/PuppeteerProfile - 修改代码里的
userDataDir指向这个新路径:
puppeteer.use(StealthPlugin()); const browser = await puppeteer.launch({ headless: false, userDataDir: "/Users/[user-name]/Library/Application Support/Google/Chrome/PuppeteerProfile", });
这样既保留了原有的登录状态,又不会和本地Chrome的配置产生冲突。之后如果需要更新登录状态,要么重新复制一次默认目录,要么直接在Puppeteer启动的Chrome里操作,状态会自动保存到新目录中。
内容的提问来源于stack exchange,提问作者Alex-jin
相关产品推荐
相关产品推荐

