木偶获得有关已加载页面的信息-已加载文件及其大小的列表

时间:2018-10-24 10:54:37

标签: javascript node.js npm puppeteer

我想知道是否可以列出通过Google Puppeteer加载的网页所加载的所有文件,例如脚本,样式(不包括内联),图像,视频,音频。我需要获取文件列表以及它们各自的大小。可能吗?如果没有,那么是否可以使用某些软件(例如npm软件包)?

搜索Google和NPM不会得到我所需要的东西。

2 个答案:

答案 0 :(得分:2)

页面资产未存储在磁盘上,而是存储在浏览器的内存中,有时还会被缓存,因此无法知道它们的大小。

您要查看的是网页抓取,可以使用node-website-scraperwith puppeteer之类的模块来完成:

page.on('response', async (response) => {
    const url = new URL(response.url());
    let filePath = path.resolve(`./output${url.pathname}`);
    if (path.extname(url.pathname).trim() === '') {
      filePath = `${filePath}/index.html`;
    }
    await fs_extra.outputFile(filePath, await response.buffer());
  });

上面的代码段将拦截请求并将其保存在输出文件夹中,您可以在其中检查其大小。有关更多详细信息,请参见链接的文章。

答案 1 :(得分:1)

在大多数情况下,@ mihai中的代码有效。但是当有回应时 206状态(通常是206响应中的图像,视频和音频),将引发错误。看到 https://github.com/GoogleChrome/puppeteer/issues/1274

相关问题