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



我在刮痧一个使用Nest.js模块的带有Puppeteer的网站

在我第一次调用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();

相关内容

  • 没有找到相关文章

最新更新