You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.3 KiB
4.3 KiB
EH-Downloader
一个基于 FastAPI 的 E-Hentai 画廊下载工具,支持异步批量下载画廊图片。
功能特性
- 🚀 异步下载: 基于 asyncio 的高性能异步下载
- 🌐 Web界面: 现代化的 Web 用户界面
- 🔧 代理支持: 支持 HTTP 代理配置
- 📁 智能管理: 自动创建目录结构,按画廊分文件夹存储
- 🔄 断点续传: 支持中断后继续下载
- 📊 进度监控: 实时显示下载进度和状态
- 🧹 自动清理: 一键清理临时文件和日志
快速开始
环境要求
- Python 3.11+
- 网络代理(可选,用于访问 E-Hentai)
安装依赖
pip install -r requirements.txt
运行应用
python main.py
访问 http://localhost:8000 使用 Web 界面。
Docker 部署
# 构建镜像
docker build -t eh-downloader .
# 运行容器
docker-compose up -d
使用说明
1. 配置代理
在项目根目录的 proxy.txt 文件中添加代理配置,每行一个:
127.0.0.1:7890
192.168.1.100:8080
2. 添加目标URL
在 data/targets.txt 文件中添加要下载的画廊URL,每行一个:
https://e-hentai.org/g/1234567/abcdef123456
https://e-hentai.org/g/2345678/bcdefg234567
3. 开始下载
- 打开 Web 界面
- 选择代理设置
- 点击"读取目标URL"加载URL列表
- 点击"下载URL"抓取画廊链接
- 点击"下载图片"开始下载图片
项目结构
ehentai-fastapi/
├── main.py # 主应用文件
├── config.py # 配置管理
├── logger.py # 日志管理
├── utils.py # 工具函数
├── step1.py # 画廊链接抓取
├── step2.py # 图片下载
├── downloader.py # 下载器类
├── templates/ # HTML模板
├── static/ # 静态资源
├── data/ # 数据目录
│ ├── targets.txt # 目标URL列表
│ ├── downloads/ # 下载文件存储
│ └── *.log # 日志文件
├── proxy.txt # 代理配置
├── requirements.txt # 依赖列表
├── Dockerfile # Docker配置
└── docker-compose.yaml # Docker Compose配置
配置说明
应用配置 (config.py)
concurrency: 并发数,默认20max_page: 单专辑最大翻页数,默认100retry_per_page: 单页重试次数,默认5retry_per_image: 单图重试次数,默认3timeout: 请求超时时间,默认10秒image_timeout: 图片下载超时时间,默认15秒
日志配置
- 日志级别:INFO
- 日志文件:
data/app.log,data/crawl.log,data/download.log - 日志格式:
[时间] [级别] 消息
API 接口
GET /
主页面
POST /load_urls
读取目标URL列表
POST /download_urls
开始抓取画廊链接
POST /download_images
开始下载图片
POST /check_incomplete
检查未完成的下载
POST /clean_files
清理临时文件
POST /clear
清除输出
注意事项
- 网络要求: 需要稳定的网络连接和合适的代理
- 存储空间: 确保有足够的磁盘空间存储下载的图片
- 合规使用: 请遵守相关法律法规和网站使用条款
- 代理配置: 建议使用稳定的代理服务以确保下载成功率
故障排除
常见问题
- 下载失败: 检查代理配置和网络连接
- 文件损坏: 重新下载或检查存储空间
- 权限错误: 确保应用有读写权限
- 内存不足: 降低并发数或增加系统内存
日志查看
# 查看应用日志
tail -f data/app.log
# 查看抓取日志
tail -f data/crawl.log
# 查看下载日志
tail -f data/download.log
开发说明
代码结构
- main.py: FastAPI 应用主文件
- config.py: 配置管理模块
- logger.py: 日志管理模块
- utils.py: 工具函数模块
- step1.py: 画廊链接抓取逻辑
- step2.py: 图片下载逻辑
扩展功能
- 添加新的下载源
- 支持更多图片格式
- 实现下载队列管理
- 添加用户认证系统
许可证
本项目仅供学习和研究使用,请遵守相关法律法规。
更新日志
v1.0.0
- 初始版本发布
- 支持基本的画廊下载功能
- Web界面和API接口
- Docker支持