puppeteer 在循环调用的时候经常报错 catch TargetCloseError: Protocol error

16 天前
 tomiaa

可能循环个 10 次会遇到一两次,内存也够用 catch TargetCloseError: Protocol error (Emulation.setTouchEmulationEnabled): Session closed. Most likely the page has been closed.

for (let index = i; index < urls.length; ) {
      let item = urls[index];

      const page = await browser.newPage();
      page.setDefaultTimeout(0);  
      page.setDefaultNavigationTimeout(0);
      await page.setViewport({ width: 1080, height: 1024 });

      await page.goto(item, {
        waitUntil: "domcontentloaded",
        protocolTimeout: 600000,
      });
      console.log("goto");
xxxxx...
      }
416 次点击
所在节点    程序员
2 条回复
youngbin0514
15 天前
你这个每次都新建一个页面吧,用完得 close 吧
tomiaa
14 天前
@youngbin0514 close 也是一样,也试了全局新建了一个 page 循环里面去 goto 跳转页面还是会报错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1095346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX