我想知道是否可以列出通过Google Puppeteer加载的网页所加载的所有文件,例如脚本,样式(不包括内联),图像,视频,音频。我需要获取文件列表以及它们各自的大小。可能吗?如果没有,那么是否可以使用某些软件(例如npm软件包)?
搜索Google和NPM不会得到我所需要的东西。
答案 0 :(得分:2)
页面资产未存储在磁盘上,而是存储在浏览器的内存中,有时还会被缓存,因此无法知道它们的大小。
您要查看的是网页抓取,可以使用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());
});
上面的代码段将拦截请求并将其保存在输出文件夹中,您可以在其中检查其大小。有关更多详细信息,请参见链接的文章。
答案 1 :(得分:1)
在大多数情况下,@ mihai中的代码有效。但是当有回应时 206状态(通常是206响应中的图像,视频和音频),将引发错误。看到 https://github.com/GoogleChrome/puppeteer/issues/1274