首页 > 编程语言 >用python调用AlistClient 批量递归下载百度网盘指定目录文件,基于Alist

用python调用AlistClient 批量递归下载百度网盘指定目录文件,基于Alist

时间:2025-01-10 15:44:01浏览次数:1  
标签:decoded 百度网 python Alist url print path local size

import os
import requests
from alist import AlistClient
from urllib.parse import unquote, urlparse

def download_file(url, local_path):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    
    with open(local_path, 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            if chunk:
                f.write(chunk)
                downloaded_size += len(chunk)
                if total_size > 0:
                    percent = downloaded_size * 100 / total_size
                    print(f"\rDownloading: {percent:.1f}% ({downloaded_size}/{total_size} bytes)", end='')
        print()  # 换行

def create_local_path(base_url, url):
    parsed = urlparse(url)
    path = parsed.path
    # 去掉/d/前缀
    if path.startswith('/d/'):
        path = path[3:]
    # 去掉文件名后的参数
    path = path.split('?')[0]
    print(path)
    # 创建本地路径
    local_path = os.path.join('c:/videos/', path)
    print(local_path)
    os.makedirs(os.path.dirname(local_path), exist_ok=True)
    return local_path

client = AlistClient("http://localhost:5244", "admin", "123456")
fs = client.fs
fs.chdir("/")

for path in fs.iter(max_depth=-1):
    if path.name.endswith(".mp4"):
        decoded_url = unquote(path.url)
        if '第2周' in decoded_url:
            print(f"Downloading: {decoded_url}")
            local_path = create_local_path("http://localhost:5244", decoded_url)
            download_file(decoded_url, local_path)
            print(f"Saved to: {local_path}")
        else:
            print(f"Skipping: {decoded_url} (does not contain '第2周')")

 使用之前

pip install python-alist

 

标签:decoded,百度网,python,Alist,url,print,path,local,size
From: https://www.cnblogs.com/meetrice/p/18664092

相关文章

  • Python LangChain入门教程 1-使用LangChain和AI对话
    LangChain 是一个用于开发由大型语言模型(LLMs)驱动的应用程序的框架。在使用LangChain框架前,先导入LangChain#这里根据你使用的AI进行引入,我使用的是智谱清言的AIfromlangchain_community.chat_modelsimportChatZhipuAI#这里导入的是消息类型fromlangchain_co......
  • streamlit实现聊天机器人应用,掌握使用Python构建好看web的页面
     第一个可视化的大模型应用。实现一个带有可视化界面的聊天机器人应用,可以将我们之前实现的聊天机器人转化为一个更加直观、用户友好的,我们的第一个可视化的大模型应用。通过使用Streamlit,我们借助st.columns、st.container、st.chat_input和st.chatmessage等streamlitAPl......
  • python SQLAlchemy ORM——从零开始学习03 如何针对数据库信息进行排序
    03如何进行排序3-1准备工作:因为要排序,所以需要随机多谢数据,model见后文。也需要random进行随机frommodelimportUser,Enginefromsqlalchemy.ormimportsessionmakerimportrandomSession=sessionmaker(bind=Engine)session=Session()defadd_random():na......
  • python+django/flask的惠安租房管理平台java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+django/flask的会议室预定系统java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python修改mysql数据库密码
    importsubprocess#获得当前执行路径#current_dir_path=os.getcwd()##path=f"{current_dir_path}/project/redis/redis-server.exe"#path=f"{current_dir_path}"#print(path)#修改当前Python进程的环境变量,但它不会永久性地修改系统的环境变量。impo......
  • 详解SonarQube Web API的使用方法以及典型应用场景(内附python代码)
    SonarQubeWebAPISonarQube的WebAPI是一组HTTPRESTAPI,允许开发人员与SonarQube服务器进行交互。这些API涵盖了SonarQube的各个方面,包括项目管理、问题管理、质量规则和指标等。我们可以在SonarQube的帮助菜单中查看相关使用信息,如下图所示:典型应用场景SonarQubeAPI可......
  • python系列:python whisper语音转文本
    pythonwhisper语音转文本pythonwhisper语音转文本PythonWhisper语音转文本实现流程1.准备工作2.导入必要的库3.将语音文件转换为适合识别的格式4.语音转文本整体流程示意图状态图代码解释总结pythonwhisper语音转文本PythonWhisper语......
  • 计算机毕业设计Python深度学习游戏推荐系统 Django PySpark游戏可视化 游戏数据分析
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • Selenium安装及配置和Python/Java案例
    什么是Selenium?   Selenium起源2004年,是一个开源、免费、简单、灵活,对Web浏览器支持良好的自动化测试工具,在UI自动化、爬虫等场景下是十分实用的。Selenium的用途   *Selenium*有很多功能,但其核心是Web浏览器自动化的一个工具集,它使用最好的技术来远程控制浏......