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属性
不需要自己处理流、进度条、断点续传这些复杂逻辑,内置工具够用了。