⤵️ 概述
DrissionPage 提供了强大的文件下载管理功能。
能够主动发起下载任务,也能够对浏览器触发的下载任务进行管理。
✅️️ download()
方法
该方法可以主动发起下载任务,提供任务管理、多线程、大文件分块、自动重连、文件名冲突处理等功能。
页面对象、<iframe>
元素对象均支持此方法。
此方法是封装 requests 实现的,下载时会自动同步 cookies。
示例:
from DrissionPage import SessionPage
page = SessionPage()
page.download('https://dldir1.qq.com/qqfile/qq/TIM3.4.8/TIM3.4.8.22092.exe')
✅️️ 浏览器的下载任务
浏览器页面对象、<iframe>
对象可对浏览器下载任务进行控制。
包含以下功能:
- 每个标签页对象可独立指定下载地址
- 可在下载前指定重命名文件名
- 可拦截下载任务,获取任务信息
示例:
from DrissionPage import Chromium
tab = Chromium().latest_tab
mission = tab('t:a').click.to_download('tmp', 'file_name') # 点击一个会触发下载的链接,同时设置下载路径和文件名
mission.wait() # 等待下载结束
功能分解写法,效果和上面的一样:
from DrissionPage import Chromium
tab = Chromium().latest_tab
tab.set.download_path('save_path') # 设置文件保存路径
tab.set.download_file_name('file_name') # 设置重命名文件名
tab('t:a').click() # 点击一个会触发下载的链接
tab.wait.download_begin() # 等待下载开始
tab.wait.downloads_done() # 等待下载结束