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.
 
 
 
 
 
 
jack f557aed15a first commit 10 months ago
src first commit 10 months ago
static first commit 10 months ago
templates first commit 10 months ago
.gitignore first commit 10 months ago
Dockerfile first commit 10 months ago
Readme.md first commit 10 months ago
build.sh first commit 10 months ago
config.py first commit 10 months ago
docker-compose.yaml first commit 10 months ago
downloader.py first commit 10 months ago
logger.py first commit 10 months ago
main.py first commit 10 months ago
performance.py first commit 10 months ago
realtime_logger.py first commit 10 months ago
requirements.txt first commit 10 months ago
start.py first commit 10 months ago
step1.py first commit 10 months ago
step2.py first commit 10 months ago
utils.py first commit 10 months ago

Readme.md

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支持