一个用于爬取 Alist 文件分享站并批量下载所有文件的 Python 工具。
- 🚀 高性能批量下载:支持多线程并发下载,可自定义线程数
- 📁 递归目录爬取:自动遍历所有子目录和文件
- 🔄 断点续传:支持中断后继续下载,跳过已存在文件
- 🌐 代理支持:支持 SOCKS5 代理,适应各种网络环境
- 🛡️ 错误重试:网络异常时自动重试,提高下载成功率
- 📊 进度管理:实时保存下载进度,支持多种格式(JSON/TXT/CSV)
- 🔒 安全下载:文件名清理、路径安全检查、下载完整性验证
- 📝 详细日志:完整的日志记录,便于问题排查
pip install -r requirements.txt或使用提供的批处理文件:
安装依赖.bat首次运行会自动创建默认配置文件 config.ini,或者你可以复制示例配置:
cp config.ini.example config.ini编辑 config.ini 文件:
[default]
# Alist 分享站地址
url = https://your-alist-site.com
# 是否使用 SOCKS5 代理
use_proxy = false
# 代理地址 (仅当 use_proxy = true 时使用)
proxy = 127.0.0.1:1080
# 下载线程数 (建议 5-20)
threads = 10
# 请求超时时间 (秒)
timeout = 30
# 重试次数
retry_times = 3
# 重试间隔 (秒)
retry_delay = 1python app.py或使用批处理文件:
运行APP.bat下载器会生成以下文件:
downloads/域名/- 下载的文件存储目录results.json- JSON格式的下载进度文件results.txt- 文本格式的文件列表results.csv- CSV格式的文件列表(可用Excel打开)download.log- 详细的运行日志
相比原版本,新版本包含以下重要改进:
- ✅ 批量进度保存:减少频繁IO操作,每10秒批量保存一次
- ✅ 连接池优化:配置连接池提高网络效率
- ✅ 内存优化:流式下载大文件,减少内存占用
- ✅ 面向对象重构:使用类封装,代码结构更清晰
- ✅ 类型注解:添加完整的类型提示,提高代码可维护性
- ✅ 错误处理:完善的异常处理和重试机制
- ✅ 文件名安全:清理非法字符,防止路径遍历攻击
- ✅ URL验证:严格的URL格式验证
- ✅ 配置验证:完善的配置项验证和默认值
- ✅ 路径分隔符:修复Windows/Linux路径兼容性问题
- ✅ 文件完整性:下载失败时自动清理不完整文件
- ✅ 线程安全:解决多线程环境下的数据竞争问题
支持 SOCKS5 代理,在配置文件中设置:
use_proxy = true
proxy = 127.0.0.1:1080根据你的网络环境调整参数:
- threads:线程数,建议5-20,过多可能被服务器限制
- timeout:超时时间,网络较慢时可适当增加
- retry_times:重试次数,网络不稳定时可增加
- Python 3.7+
- Windows/Linux/macOS
- 网络连接
我们提供了专门的诊断工具来帮助排查连接问题:
python test_connection.py诊断工具会自动检测:
- 🔗 目标Alist站点的可访问性
- 🌐 代理服务器连接状态
- 📡 API端点响应情况
- 💡 智能的问题分析和解决建议
症状:日志显示 getaddrinfo failed 或 SOCKSHTTPSConnectionPool 错误
解决方案:
- 确认代理服务器(如Clash、V2Ray等)正在运行
- 检查代理端口是否正确(通常是7890、1080等)
- 尝试在配置中使用
socks5h://前缀 - 运行诊断工具检测连接状态
症状:请求超时、连接拒绝
解决方案:
- 检查目标Alist站点是否可访问
- 增加
timeout配置值 - 确认防火墙没有阻止连接
- 尝试直连模式(关闭代理)
症状:下载速度远低于预期
解决方案:
- 适当调整
threads数量(建议5-20) - 检查网络带宽限制
- 确认代理服务器性能
- 尝试直连模式对比速度
症状:无法创建目录或写入文件
解决方案:
- 确保对下载目录有写权限
- 检查磁盘空间是否充足
- 在Windows上以管理员身份运行
症状:程序启动失败或配置读取错误
解决方案:
- 参考
config.ini.example检查格式 - 确保URL格式正确(包含 http:// 或 https://)
- 检查配置文件编码是否为UTF-8
新版本包含智能错误恢复机制:
- 自动代理回退:代理失败时自动尝试直连
- 网络重试:临时网络问题时自动重试
- 进度保护:异常中断后可恢复下载
运行日志保存在 download.log 文件中,包含:
- 📝 详细的操作记录
⚠️ 错误信息和堆栈跟踪- 🔄 重试和恢复过程
- 📊 性能统计信息
本项目基于 LICENSE 许可证开源。
欢迎提交 Issue 和 Pull Request 来改进这个项目!