返回
用 Puppeteer 控制 Chrome/Chromium 实现文件下载
前端
2023-11-30 19:18:35
在前面的 5 篇文章中,我们已经了解了 Puppeteer 的基本用法,包括如何打开浏览器、导航到指定页面、选择元素和点击元素等。在本文中,我们将讲解如何使用 Puppeteer 控制 Chrome/Chromium,从而达到下载文件的目的。
设置下载目录
Puppeteer 提供了 downloadPath
选项来设置下载目录。该选项可以在 launch()
方法中指定,如下所示:
const browser = await puppeteer.launch({
downloadPath: '/path/to/download/directory',
});
这样,所有下载的文件都会被保存到 /path/to/download/directory
目录中。
暂停或恢复下载
Puppeteer 还提供了 setDownloadBehavior()
方法来暂停或恢复下载。该方法有两种参数,分别是 behavior
和 path
。behavior
参数可以是 'allow'
、'deny'
或 'defer'
,分别表示允许下载、禁止下载和延迟下载。path
参数是下载文件的路径。
以下示例演示了如何暂停下载:
await page.setDownloadBehavior('defer');
以下示例演示了如何恢复下载:
await page.setDownloadBehavior('allow');
在下载完成后进行处理
Puppeteer 还提供了 on()
方法来监听下载事件。该方法有两个参数,分别是 event
和 callback
。event
参数可以是 'download'
或 'pageerror'
,分别表示下载事件和页面错误事件。callback
参数是一个函数,将在事件发生时被调用。
以下示例演示了如何在下载完成后进行处理:
page.on('download', async (download) => {
// 下载完成时触发此回调函数
console.log(`下载文件: ${download.url()}`);
await download.saveAs('/path/to/save/file');
});
结语
Puppeteer 是一个强大的工具,可以用于各种自动化任务。本文介绍了如何使用 Puppeteer 控制 Chrome/Chromium,从而达到下载文件的目的。希望本文对您有所帮助。