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.
 
 
 
 
 
 
eh-fastapi/Readme.md

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. 开始下载

  1. 打开 Web 界面
  2. 选择代理设置
  3. 点击"读取目标URL"加载URL列表
  4. 点击"下载URL"抓取画廊链接
  5. 点击"下载图片"开始下载图片

项目结构

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: 并发数,默认20
  • max_page: 单专辑最大翻页数,默认100
  • retry_per_page: 单页重试次数,默认5
  • retry_per_image: 单图重试次数,默认3
  • timeout: 请求超时时间,默认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

清除输出

注意事项

  1. 网络要求: 需要稳定的网络连接和合适的代理
  2. 存储空间: 确保有足够的磁盘空间存储下载的图片
  3. 合规使用: 请遵守相关法律法规和网站使用条款
  4. 代理配置: 建议使用稳定的代理服务以确保下载成功率

故障排除

常见问题

  1. 下载失败: 检查代理配置和网络连接
  2. 文件损坏: 重新下载或检查存储空间
  3. 权限错误: 确保应用有读写权限
  4. 内存不足: 降低并发数或增加系统内存

日志查看

# 查看应用日志
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: 图片下载逻辑

扩展功能

  1. 添加新的下载源
  2. 支持更多图片格式
  3. 实现下载队列管理
  4. 添加用户认证系统

许可证

本项目仅供学习和研究使用,请遵守相关法律法规。

更新日志

v1.0.0

  • 初始版本发布
  • 支持基本的画廊下载功能
  • Web界面和API接口
  • Docker支持