Puppeteer 需要为每次抓取重新启动服务器

Puppeteer needs to restart server for each scrape

我正在 抓取 一个使用 Puppeteer 的网站 Nest.js module.

scraping 在我第一次调用 GET 方法时工作,但之后它不会再次抓取。这意味着我必须为每个 重新启动 服务器 抓取 ,这并不理想。

抓取代码(简体):

@Injectable()
export class AppService {
  constructor(@InjectBrowser() private readonly browser: Browser) {}

  async getFoodoraRestaurantMenus(url: string): Promise<string> {
    console.log("Calling method");
    const page = await this.browser.newPage();
    console.log('Never gets here the second time');

    await page.goto(url);

    const content = await page.evaluate(() => {});

    await this.browser.close();

    return JSON.stringify(content, null, 4);
  }
}

我第二次调用 getFoodoraRestaurantMenus 我从未进入第二个控制台日志,因此从未打开新页面。我不确定我是否需要做的不仅仅是 browser.close(),我能找到的就这些了。

我不知道为什么每次要执行抓取时都需要重新启动服务器。非常感谢我能得到的所有帮助。

谢谢。

如果您只想释放内存并重复使用同一个浏览器,您可以尝试只关闭页面而不是浏览器:

await page.close();