小编Pi-*_* Up的帖子

如何通过puppeteer拦截网站客户端生成的blob下载?

我在此链接 ( https://master.d3tei1upkyr9mb.amplifyapp.com/report ) 上有一个页面,其中有 3 个导出按钮。这些导出按钮在前端生成 XLSX、CSV、PDF,因此没有 XLSX、CSV、PDF 的 URL。

我需要 puppeteer 能够在我的节点后端下载、获取或拦截这些文件的 blob 或缓冲区。

我尝试了不同的方法来实现这一目标,但仍然没有弄清楚。

通过下面编写的代码可以通过剧作家库实现。但我需要能够用 Puppeteer 来做到这一点。

const {chromium} = require('playwright');
const fs = require('fs');

(async () => {
    const browser = await chromium.launch();
    const context = await browser.newContext({acceptDownloads: true});
    const page = await context.newPage();

    await page.goto('http://localhost:3000/');

    const [ download ] = await Promise.all([
        page.waitForEvent('download'), // <-- start waiting for the download
        page.click('button#expoXLSX') // <-- perform the action that directly or indirectly initiates it.
    ]);

    const path …
Run Code Online (Sandbox Code Playgroud)

node.js google-chrome-headless puppeteer

7
推荐指数
1
解决办法
2170
查看次数