跳至主要内容

下载

简介

对于页面下载的每个附件,都会发出 page.on("download") 事件。所有这些附件都下载到一个临时文件夹中。您可以使用事件中的 Download 对象获取下载 URL、文件名和有效负载流。

您可以使用 downloads_path 选项在 browser_type.launch() 中指定持久化下载文件的位置。

注意

当产生下载文件的浏览器上下文关闭时,下载的文件会被删除。

以下是最简单的处理文件下载的方法

# Start waiting for the download
with page.expect_download() as download_info:
# Perform the action that initiates download
page.get_by_text("Download file").click()
download = download_info.value

# Wait for the download process to complete and save the downloaded file somewhere
download.save_as("/path/to/save/at/" + download.suggested_filename)

变体

如果您不知道是什么启动了下载,您仍然可以处理该事件

page.on("download", lambda download: print(download.path()))

请注意,处理事件会分叉控制流并使脚本更难理解。您的场景可能会在您下载文件时结束,因为您的主控制流不会等待此操作完成。

注意

有关上传文件,请参见 上传文件 部分。