首页 / DrissionPage 入门教程 / 下载文件

DrissionPage 入门教程

下载文件

本教程共 42 篇 · 第 34 篇 · 更新于 2026-07-29 · 约 5 分钟阅读

DrissionPageDrissionPage 入门教程下载文件download文件保存

34. 下载文件

本节目标:学会用 DrissionPage 一行代码下载文件,掌握下载路径设置和等待下载完成的用法。

DrissionPage 内置了一个下载器,不需要自己写下载逻辑。

一行代码就能把文件保存到本地。

最简单的下载

from DrissionPage import SessionPage

url = 'https://www.baidu.com/img/flexible/logo/pc/result.png'
save_path = r'C:\download'

page = SessionPage()
page.download(url, save_path)

download() 方法接收两个参数:文件 URL 和保存目录。

文件名自动从 URL 中提取。

指定保存路径

save_path 可以是目录也可以是完整文件路径:

# 保存到目录,文件名从 URL 获取
page.download(url, r'C:\download')

# 保存为指定文件名
page.download(url, r'C:\download\mylogo.png')

用浏览器对象下载

ChromiumPage 和 WebPage 也有 download() 方法:

from DrissionPage import Chromium

tab = Chromium().latest_tab
tab.download(url, r'C:\download')

等待下载完成

默认 download() 是异步的,调用完就返回了。

如果要等下载完再做后面的事,用 wait() 参数:

# wait=True 会阻塞直到下载完成
page.download(url, r'C:\download', wait=True)
print("下载完成")

浏览器模式的下载

ChromiumPage 的下载机制不太一样。

浏览器有自己的下载行为,可以通过 tab.set.download_path() 设置下载目录:

from DrissionPage import Chromium

tab = Chromium().latest_tab
tab.set.download_path(r'C:\download')  # 设置下载目录
tab.get('https://example.com/file.zip')
# 浏览器会自动下载到指定目录

等待浏览器下载完成

# 点击触发下载
tab('#download-btn').click()

# 等待下载完成
tab.wait.download_begin()  # 等下载开始
tab.wait.downloads_done()  # 等所有下载结束

下载到内存

如果不想保存到文件,可以直接获取内容:

page.get(url)
data = page.raw_data  # bytes 类型

然后用 Python 标准库保存:

with open(r'C:\download\file.png', 'wb') as f:
    f.write(data)

小结

DrissionPage 的下载功能非常简洁:

  • download(url, save_path) 一行搞定
  • wait=True 等待下载完成
  • 浏览器模式用 set_download_path() 设置下载目录
  • 需要内容到内存用 raw_data 属性

不需要自己处理流、进度条、断点续传这些复杂逻辑,内置工具够用了。