javascript - Puppeteer 获取有关页面加载的信息 - 加载的文件列表及其大小

标签 javascript node.js npm puppeteer

我想知道是否可以列出为通过 Google 的 Puppeteer 加载的网页加载的所有文件,例如脚本、样式(不包括内联)、图像、视频、音频。我需要获取文件列表及其各自的大小。这可能吗?如果不可能,是否有某种软件(例如 npm 包)可以做到这一点?

在 Google 和 NPM 上搜索结果与我需要的完全不同。

最佳答案

页面 Assets 不存储在磁盘上,它们保存在浏览器内存中,有时会缓存,因此无法知道它们的大小。

你想看的是网络抓取,这可以用像node-website-scraper这样的模块来完成。或 with 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());
  });

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

关于javascript - Puppeteer 获取有关页面加载的信息 - 加载的文件列表及其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967184/

相关文章:

javascript - 谷歌地图 API v3 如何获取所有形状的坐标

javascript - JointJS 中的自动换行

node.js - 在 heroku 上部署失败,因为 npm 版本不是最新的

javascript - 创建一个 monorepo 而不托管在包注册表上并通过 bitbucket 安装

javascript - 允许 <a> 标签标题属性中包含 html

node.js - 不使用模板引擎的 Koa 渲染

javascript - 从对象属性递归生成文件路径

安卓 + Node : Client-Server communication

linux - NPM 模块安装需要 sudo 的原始原因是什么?

javascript 创建新日期减去一天