在 Puppeteer 下载之前如何更改文件的名称?

How to change the name of a file before it downloads in Puppeteer?

我需要从网站下载多个 .csv 文件并用不同的名称保存它们。但是,它们都使用相同的名称下载。因此,他们不断覆盖最后一个文件,最后只剩下一个文件。这是我的代码:

for(let i = 0; i <= 10; i++){
await page._client.send("Page.setDownloadBehavior", {
            behavior: "allow",
            downloadPath: `./csvFiles/`,
        });
await page.click("button_selector");
}

Puppeteer 点击下载按钮后开始下载,由于所有这些代码都在循环中,我无法重命名文件,因为它们是在循环结束后创建的,到那时我只有一个文件已下载。

如果可以获取 CSV 文件的 URL,您可以插入(或修改)<a> 标签的 download 属性。

否则,您可能会拦截服务器的 HTTP 响应并修改 Content-Disposition 响应 header 以设置文件名,以便浏览器接收带有显式文件名的更改后的 HTTP 响应。