puppeteer - 如何设置下载位置

A. *_*Lau 9 chromium node.js puppeteer

我能够用puppeteer成功下载文件,但它只是保存到我的/ Downloads文件夹中.我一直在环顾四周,在api或论坛中找不到任何设置此位置的内容.

我的下载基本上只是转到链接:

await page.goto(url);
Run Code Online (Sandbox Code Playgroud)

Dan*_*ier 21

在较新版本的 Puppeteer 中(我使用的是 v14.1),接受的答案不再有效:

await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './myAwesomeDownloadFolder'});

> TypeError: page._client.send is not a function
Run Code Online (Sandbox Code Playgroud)

相反,我必须明确创建一个新的CDPSession

const client = await page.target().createCDPSession()
await client.send('Page.setDownloadBehavior', {
  behavior: 'allow',
  downloadPath: './myAwesomeDownloadFolder',
})
Run Code Online (Sandbox Code Playgroud)

  • 英勇。无法让“fileChooser” API 按预期工作——这可能应该是这里接受的答案。 (2认同)

Md.*_*her 15

这是您在最新的puppeteer v0.13中设置下载路径的方法.

await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './myAwesomeDownloadFolder'});
Run Code Online (Sandbox Code Playgroud)

该行为是实验性的,可能会在以后删除,修改或更改.

Pst,你可以尝试更多这里列出的技巧,风险:).

  • 更新:2022 `._client` 不是一个函数,所以它不起作用 (3认同)