如何在puppeteer上拦截下载请求并读取被拦截的文件

sro*_*ati 6 javascript node.js puppeteer

我正在使用 puppeteer 进行网页抓取,我需要设置一个请求拦截来读取从浏览器下载的文件,而不实际下载它,因为下载读取然后删除它需要大量资源。

我已经识别了该请求,但找不到读取它的方法

await pages[0].setRequestInterception(true);
  pages[0].on('request', request => {
    if (request.resourceType() === 'font' || request.resourceType() === 'stylesheet' || request.resourceType() === 'image') {
      request.abort();
    } else {
      request.continue();
    }
 });
Run Code Online (Sandbox Code Playgroud)

har*_*ded 3

我宁愿使用响应事件,因为请求拦截还没有响应。

pages[0].on('response', async response => {
    if (response.request() /*Your condition check*/) {
      var buffer = await response.buffer(); /*You can get the buffer*/
      var content = await response.text(); /*You can get the content as text*/
    }
});
Run Code Online (Sandbox Code Playgroud)