简短的答案:不可能
Chrome仅允许以 无头 或 无头 模式启动浏览器。启动浏览器时必须指定它,并且无法在运行时进行切换。
可能的是启动第二个浏览器并重用第一个浏览器中的cookie(和任何其他数据)。
长答案
您将假设您可以在调用时重用数据目录
puppeteer.launch,但是由于存在多个错误(在puppeteer存储库中为#1268和#1270),当前无法实现此目的。
因此,最好的方法是保存需要在浏览器实例之间共享的任何cookie或本地存储数据,并在启动浏览器时还原数据。然后,您第二次访问该网站。请注意,当您重新爬网页面时,网站在Javascript变量方面的任何状态都将丢失。
处理
总结起来,整个过程应该是这样的(反之亦然)
- 以无头模式爬行,直到您要切换模式
- 序列化cookie
- 启动或重用第二个浏览器(无头模式)
- 还原cookie
- 重新访问页面
- 继续爬行



